def broadcast(cid, to_others, to_host = None, additional_channels = set(), event='message'): # all clients that are listening to channel cid clients = listening_clients(cid).union(additional_channels) pipe = red.pipeline() for c in clients: if int(c) == int(cid): if to_host is not None: pipe.publish('sse-%s' % cid, u'%s;%s' % (event, json.dumps(to_host))) else: pipe.publish('sse-%s' % c, u'%s;%s' % (event, json.dumps(to_others))) pipe.execute()
def notify(things, event='message'): pipe = red.pipeline() for channel, message in things.items(): pipe.publish('sse-%s' % channel, u'%s;%s' % (event, json.dumps(message))) pipe.execute()