annot-server/websockets.py
changeset 93 79ae42ad97d4
parent 76 029cdbeebf03
equal deleted inserted replaced
87:9611905b58fe 93:79ae42ad97d4
     1 
       
     2 #
     1 #
     3 # See LICENCE for detail
     2 # See LICENCE for detail
     4 # Copyright (c) 2014 IRI
     3 # Copyright (c) 2014 IRI
     5 #
     4 #
     6 
     5 
    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):