diff options
author | 2018-05-25 14:21:10 +0200 | |
---|---|---|
committer | 2018-05-25 14:21:10 +0200 | |
commit | 85dbc20a80a2b4c233708be1460da7909e205388 (patch) | |
tree | 36d98fca1d490ffe4af0b07defe979389fbe5390 /snekweb.py | |
parent | generate new queue based on session id to lock user to their own event chain (diff) |
lint
Diffstat (limited to 'snekweb.py')
-rw-r--r-- | snekweb.py | 30 |
1 files changed, 18 insertions, 12 deletions
@@ -12,11 +12,9 @@ from flask import render_template from flask_sockets import Sockets from config import HOST -from config import PORT from config import EXCHANGE from config import EXCHANGE_TYPE from config import QUEUE -from config import RETURN_QUEUE from config import ROUTING_KEY app = Flask(__name__) @@ -28,6 +26,7 @@ sockets = Sockets(app) def index(): return render_template('index.html') + @sockets.route('/ws/<snekboxid>') def websocket_route(ws, snekboxid): RMQ_queue = queue.Queue(maxsize=0) @@ -35,9 +34,10 @@ def websocket_route(ws, snekboxid): def message_handler(ch, method, properties, body): msg = body.decode('utf-8') RMQ_queue.put(msg) - ch.basic_ack(delivery_tag = method.delivery_tag) + ch.basic_ack(delivery_tag=method.delivery_tag) - consumer = threading.Thread(target=consume, kwargs={'host':HOST, 'queue':snekboxid, 'callback':message_handler}) + consumer_parameters = {'host': HOST, 'queue': snekboxid, 'callback': message_handler} + consumer = threading.Thread(target=consume, kwargs=consumer_parameters) consumer.daemon = True consumer.start() @@ -60,19 +60,25 @@ def websocket_route(ws, snekboxid): while not ws.closed: message = ws.receive() if message: - snek_msg = json.dumps({snekboxid:message}) + snek_msg = json.dumps({snekboxid: message}) print(f"forwarding {snek_msg} to rabbitmq") - publish(snek_msg, host=HOST, queue=QUEUE, routingkey=ROUTING_KEY, exchange=EXCHANGE, exchange_type=EXCHANGE_TYPE) + publish(snek_msg, + host=HOST, + queue=QUEUE, + routingkey=ROUTING_KEY, + exchange=EXCHANGE, + exchange_type=EXCHANGE_TYPE) - except: + except Exception: print(traceback.format_exc()) finally: if not ws.closed: ws.close() -# if __name__ == '__main__': -# from gevent import pywsgi -# from geventwebsocket.handler import WebSocketHandler -# server = pywsgi.WSGIServer(('0.0.0.0', 5000), app, handler_class=WebSocketHandler) -# server.serve_forever() + +if __name__ == '__main__': + from gevent import pywsgi + from geventwebsocket.handler import WebSocketHandler + server = pywsgi.WSGIServer(('0.0.0.0', 5000), app, handler_class=WebSocketHandler) + server.serve_forever() |