from flask import render_template, request, send_from_directory from app import app, sio, send_queue, recv_queue import time import threading @app.route('/') @app.route('/index') def index(): return render_template('index.html', title='F16 Group1') @app.route('/static/') def send_static(path): return send_from_directory('static', path) connections = set() @sio.on('connect', namespace='/spawn') def connect(sid, environ): print("connect ", sid) connections.add(sid) @sio.on('spawn', namespace='/spawn') def message(sid, data): print("message ", data) send_queue.put(('spawn', data)) @sio.on('ready', namespace='/spawn') def ready(sid): print("got ready message from ", sid) for event in received_events: print "sending missed event", event sio.emit(event[0], event[1], room=sid, namespace='/spawn') @sio.on('disconnect', namespace='/spawn') def disconnect(sid): print('disconnect', sid) connections.remove(sid) received_events = [] def recv_events(): while True: event = recv_queue.get() sio.emit(event[0], event[1], namespace='/spawn') received_events.append(event) thread = sio.start_background_task(recv_events)