aboutsummaryrefslogtreecommitdiffstats
path: root/webapp/webapp.py
blob: 676fc27b4f7633b32f3402c3df6f1255842f99d9 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import traceback

from rmq import send as rmq_send
from flask import Flask
from flask import render_template
from flask_sockets import Sockets

app = Flask(__name__)
sockets = Sockets(app)

@app.route('/')
def index():
    return render_template('index.html')

@sockets.route('/ws')
def websocket_route(ws):
    try:
        while not ws.closed:
            message = ws.receive()

            if not message:
                continue
            print(f"received '{message}'")

            rmq_send(message)

    except:
        print(traceback.format_exec())

    finally:
        if not ws.closed:
            ws.close()

if __name__ == '__main__':
    #app.run(host='0.0.0.0', port=5000, debug=True)
    from gevent import pywsgi
    from geventwebsocket.handler import WebSocketHandler
    server = pywsgi.WSGIServer(('0.0.0.0', 5000), app, handler_class=WebSocketHandler)
    server.serve_forever()