diff options
Diffstat (limited to 'events.py')
-rw-r--r-- | events.py | 12 |
1 files changed, 11 insertions, 1 deletions
@@ -2,11 +2,13 @@ import zmq, json from config import config def EventSubscriber(app, environ, start_response, path): + session = 'session-' + environ['sessionid'] context = zmq.Context() socket = context.socket(zmq.SUB) socket.connect(config.get('event_subscriber')) socket.setsockopt(zmq.SUBSCRIBE, 'cached') socket.setsockopt(zmq.SUBSCRIBE, 'recoding') + socket.setsockopt(zmq.SUBSCRIBE, session) start_response('200 OK', [('Content-Type', 'text/event-stream')]) yield ': event source stream\n\n' @@ -18,7 +20,12 @@ def EventSubscriber(app, environ, start_response, path): break message = socket.recv() address, message = message.split(None, 1) - if address in ('cached', 'recoding'): + + # split session-specific messages + if address == session: + address, message = message.split(None, 1) + + if address in ('cached', 'recoding', 'play'): data = json.dumps({'type': address, 'path': message}) yield 'data: {0}\n\n'.format(data) @@ -36,4 +43,7 @@ class EventPublisher(object): def cached(self, path): self.socket.send('cached {0}'.format(path)) + def play(self, session, path): + self.socket.send('session-{0} play {1}'.format(session, path)) + event_pub = EventPublisher() |