diff --git a/Server/server.py b/Server/server.py index ec9e794..9d7a562 100644 --- a/Server/server.py +++ b/Server/server.py @@ -257,7 +257,7 @@ class Client(messaging.ConnectionManager): self.on_connect(self) def _got_id(self, value): - logging.info("Got copter id: {} for client {}".format(self.copter_id, self.addr)) + logging.info("Got copter id: {} for client {}".format(value, self.addr)) self.copter_id = value if Client.on_first_connect: Client.on_first_connect(self) @@ -290,7 +290,7 @@ class Client(messaging.ConnectionManager): def broadcast(message, force_all=False): for client in Client.clients.values(): if client.connected or force_all: - client.send(message) + client._send(message) @classmethod @requires_any_connected diff --git a/messaging_lib.py b/messaging_lib.py index f4586c0..ab3f375 100644 --- a/messaging_lib.py +++ b/messaging_lib.py @@ -13,7 +13,8 @@ except: import selectors2 as selectors PendingRequest = collections.namedtuple("PendingRequest", ["value", "requested_value", # "expires_on", - "callback", "callback_args", "callback_kwargs" + "callback", "callback_args", "callback_kwargs", + #"obj", ]) @@ -286,12 +287,29 @@ class ConnectionManager(object): with self._request_lock: for key, value in self._request_queue.items(): if (key == request_id) and (value.requested_value == requested_value): + print(54) request = self._request_queue.pop(key) - request.value = message.content["value"] + print(request) + value = message.content["value"] + print(45) logging.debug( "Request successfully closed with value {}".format(message.content["value"]) ) - request.callback(request.value, *request.callback_args, **request.callback_kwargs) + ''' + if request.obj: + obj = request.obj + f = request.callback + + obj.f(request.value, *request.callback_args, **request.callback_kwargs) + + else: + f = request.callback + f(request.value, *request.callback_args, **request.callback_kwargs) + ''' + f = request.callback + print(f) + f(value, *request.callback_args, **request.callback_kwargs) + break else: logging.warning("Unexpected response!") @@ -311,6 +329,7 @@ class ConnectionManager(object): with self._send_lock: if (not self._send_buffer) and self._send_queue: message = self._send_queue.popleft() + print(self._send_queue) self._send_buffer += message if self._send_buffer: self._write() @@ -332,13 +351,14 @@ class ConnectionManager(object): else: logging.debug("Sent {} to {}".format(self._send_buffer[:sent], self.addr)) self._send_buffer = self._send_buffer[sent:] + print(self._send_buffer) def _send(self, data): with self._send_lock: self._send_queue.append(data) def get_response(self, requested_value, callback, request_args=None, # timeout=30, - callback_args=(), callback_kwargs=None): + callback_args=(), callback_kwargs=None, obj=None): if request_args is None: request_args = {} if callback_kwargs is None: @@ -353,6 +373,7 @@ class ConnectionManager(object): callback=callback, callback_args=callback_args, callback_kwargs=callback_kwargs, + #obj=obj ) self._send(MessageManager.create_request(requested_value, request_id, request_args))