summaryrefslogtreecommitdiffstats
path: root/webapp/app
diff options
context:
space:
mode:
Diffstat (limited to 'webapp/app')
-rw-r--r--webapp/app/__init__.py5
-rw-r--r--webapp/app/templates/index.html2
-rw-r--r--webapp/app/views.py23
3 files changed, 23 insertions, 7 deletions
diff --git a/webapp/app/__init__.py b/webapp/app/__init__.py
index 29cd22b..3e188ec 100644
--- a/webapp/app/__init__.py
+++ b/webapp/app/__init__.py
@@ -1,6 +1,11 @@
from flask import Flask
import socketio
+import Queue
+
+recv_queue = Queue.Queue()
+send_queue = Queue.Queue()
+
sio = socketio.Server(async_mode='threading')
app = Flask(__name__)
app.wsgi_app = socketio.Middleware(sio, app.wsgi_app)
diff --git a/webapp/app/templates/index.html b/webapp/app/templates/index.html
index b0d9bb3..d4d1853 100644
--- a/webapp/app/templates/index.html
+++ b/webapp/app/templates/index.html
@@ -43,6 +43,8 @@
socket.on('disconnect', function() {
console.log('disconnected');
});
+
+ socket.emit('ready');
});
</script>
diff --git a/webapp/app/views.py b/webapp/app/views.py
index 4aa2c05..1c68688 100644
--- a/webapp/app/views.py
+++ b/webapp/app/views.py
@@ -1,11 +1,9 @@
from flask import render_template, request
-from app import app, sio
+from app import app, sio, send_queue, recv_queue
import time
import threading
-thread = None
-
@app.route('/')
@app.route('/index')
def index():
@@ -22,6 +20,14 @@ def connect(sid, environ):
@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):
@@ -29,9 +35,12 @@ def 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)
-def add_creature():
- time.sleep(5)
- sio.emit('new creature', {'name': 'fish1'}, namespace='/spawn')
-thread = sio.start_background_task(add_creature)
+thread = sio.start_background_task(recv_events)