summaryrefslogtreecommitdiff
path: root/events.py
diff options
context:
space:
mode:
authorJon Bergli Heier <snakebite@jvnv.net>2011-08-08 19:15:49 +0200
committerJon Bergli Heier <snakebite@jvnv.net>2011-08-08 19:15:49 +0200
commit6ee205018af2f5d13f2606f16d82564d5877b589 (patch)
tree49875a2442cfb7666ec2c15ac6d82b36c4b7e7a8 /events.py
parent97d7c9014855449fe04162308feac66a35e007ea (diff)
Implemented session, send play notification.
Diffstat (limited to 'events.py')
-rw-r--r--events.py12
1 files changed, 11 insertions, 1 deletions
diff --git a/events.py b/events.py
index 4759a19..451e6f0 100644
--- a/events.py
+++ b/events.py
@@ -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()