This project adds websocket capabilities to bottle, leveraging tornado
Use pip
or easy_install
:
pip install bottle-tornadosocket
- Bottle
- Tornado
Import the server and tornado's WebSocketHandler:
from bottle.ext.tornadosocket import TornadoWebSocketServer
from tornado.websocket import WebSocketHandler
Create your application handlers, for example:
class EchoWebSocket(tornado.websocket.WebSocketHandler):
def open(self):
print 'Connected')
def on_message(self, message):
self.write(message)
def on_close(self):
print 'Connection closed')
Map handlers to urls:
tornado_handlers = [
(r"/echo", EchoWebSocket)
]
Note: the .*
is automatically mapped as a last handler to your normal bottle application
And then use the provided server:
run(port=8080, server=TornadoWebSocketServer, handlers=tornado_handlers)
To echo chat example just run chat.py
in examples/echo
folder:
python echo.py
To run chat example just run chat.py
in examples/chat
folder:
python chat.py