48 print("registered filter {} for client {}".format(repr(filter),client.peer)) |
47 print("registered filter {} for client {}".format(repr(filter),client.peer)) |
49 self.filters[client] = filter |
48 self.filters[client] = filter |
50 |
49 |
51 def register(self, client): |
50 def register(self, client): |
52 if not client in self.clients: |
51 if not client in self.clients: |
53 print("registered client {}".format(client.peer)) |
52 print("registered client {}".format(client.peer)) |
54 self.clients.append(client) |
53 self.clients.append(client) |
55 |
54 |
56 def unregister(self, client): |
55 def unregister(self, client): |
57 if client in self.clients: |
56 if client in self.clients: |
58 print("unregistered client {}".format(client.peer)) |
57 print("unregistered client {}".format(client.peer)) |
59 self.clients.remove(client) |
58 self.clients.remove(client) |
60 if client in self.filters: |
59 if client in self.filters: |
61 self.filters.pop(client, None) |
60 self.filters.pop(client, None) |
62 |
61 |
63 def broadcast(self, msg, filter): |
62 def broadcast(self, msg, filter_list): |
64 print("broadcasting prepared message '{}' ..".format(msg)) |
63 print("broadcasting prepared message '{}' ..".format(msg)) |
65 preparedMsg = self.prepareMessage(msg) |
64 preparedMsg = self.prepareMessage(msg) |
66 for c in self.clients: |
65 for c in self.clients: |
67 if all([ (k in filter and filter[k] in v) for k,v in self.filters.get(c, {}).items()]): |
66 if all([ (k in filter_list and filter_list[k] in v) for k,v in self.filters.get(c, {}).items()]): |
68 c.sendPreparedMessage(preparedMsg) |
67 c.sendPreparedMessage(preparedMsg) |
69 print("prepared message sent to {}".format(c.peer)) |
68 print("prepared message sent to {}".format(c.peer)) |
70 |
69 |
71 |
70 |
72 class AnnotationServerProtocol(WebSocketServerProtocol, BaseProtocol): |
71 class AnnotationServerProtocol(WebSocketServerProtocol, BaseProtocol): |