feat: client list for the server

This commit is contained in:
Swann Martinez
2019-07-19 11:42:08 +02:00
parent da5ccfd4ef
commit 91c62785fd
2 changed files with 10 additions and 24 deletions

View File

@ -194,6 +194,7 @@ class ServerNetService(threading.Thread):
self.pull = None self.pull = None
self.state = 0 self.state = 0
self.factory = factory self.factory = factory
self.clients = []
def listen(self, port=5560): def listen(self, port=5560):
@ -206,6 +207,7 @@ class ServerNetService(threading.Thread):
# Update all clients # Update all clients
self.publisher = self.context.socket(zmq.PUB) self.publisher = self.context.socket(zmq.PUB)
# self.publisher.setsockopt(zmq.IDENTITY,b'SERVER')
self.publisher.setsockopt(zmq.SNDHWM, 60) self.publisher.setsockopt(zmq.SNDHWM, 60)
self.publisher.bind("tcp://*:{}".format(port+1)) self.publisher.bind("tcp://*:{}".format(port+1))
time.sleep(0.2) time.sleep(0.2)
@ -240,32 +242,16 @@ class ServerNetService(threading.Thread):
request = msg[1] request = msg[1]
if request == b"SNAPSHOT_REQUEST": if request == b"SNAPSHOT_REQUEST":
pass # Sending snapshots
else: for key, item in self._rep_store:
logger.info("Bad snapshot request") self.snapshot.send(identity, zmq.SNDMORE)
break item.push(self.snapshot)
for key, item in self._rep_store: # Snapshot end
self.snapshot.send(identity, zmq.SNDMORE) self.snapshot.send(identity, zmq.SNDMORE)
item.push(self.snapshot) RepCommand(owner='server',data='SNAPSHOT_END').push(self.snapshot)
self.snapshot.send(identity, zmq.SNDMORE)
RepCommand(owner='server',data='SNAPSHOT_END').push(self.snapshot)
# ordered_props = [(SUPPORTED_TYPES.index(k.split('/')[0]),k,v) for k, v in self.property_map.items()]
# ordered_props.sort(key=itemgetter(0))
# for i, k, v in ordered_props:
# logger.info(
# "Sending {} snapshot to {}".format(k, identity))
# self.request_sock.send(identity, zmq.SNDMORE)
# v.send(self.request_sock)
# msg_end_snapshot = message.Message(key="SNAPSHOT_END", id=identity)
# self.request_sock.send(identity, zmq.SNDMORE)
# msg_end_snapshot.send(self.request_sock)
# logger.info("done")
# Regular update routing (Clients / Client) # Regular update routing (Clients / Client)
if self.pull in socks: if self.pull in socks:

View File

@ -81,7 +81,7 @@ class TestClient(unittest.TestCase):
data_sample_key = client.register(SampleData()) data_sample_key = client.register(SampleData())
#Waiting for server to receive the datas #Waiting for server to receive the datas
time.sleep(.2) time.sleep(.5)
rep_test_key = client2._rep_store[data_sample_key].uuid rep_test_key = client2._rep_store[data_sample_key].uuid