Skip to content

Instantly share code, notes, and snippets.

@omar2205
Created April 19, 2022 06:11
Show Gist options
  • Save omar2205/ab9055f1fe5cc0170ac61d8bb7e8c044 to your computer and use it in GitHub Desktop.
Save omar2205/ab9055f1fe5cc0170ac61d8bb7e8c044 to your computer and use it in GitHub Desktop.
Bottlepy WebSocket server
from gevent import monkey; monkey.patch_all()
from bottle import Bottle, request, abort
app = Bottle()
@app.route('/ws')
def handle_ws():
ws = request.environ.get('wsgi.websocket')
if not ws:
abort(400, 'Expected a WebSocket request')
while True:
try:
msg = ws.receive()
ws.send(f'Your msg {msg}')
except WebSocketError:
break
from gevent.pywsgi import WSGIServer
from geventwebsocket import WebSocketError
from geventwebsocket.handler import WebSocketHandler
server = WSGIServer(('0.0.0.0', 3000), app,
handler_class=WebSocketHandler)
server.serve_forever()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment