From 922de4d160bfc9560cd898ec31f17e65c61a3f65 Mon Sep 17 00:00:00 2001 From: Roy Hyunjin Han Date: Mon, 23 Feb 2015 02:18:18 -0500 Subject: [PATCH] Fix ack --- socketIO_client/__init__.py | 17 ++++++++++------- socketIO_client/tests/__init__.py | 2 +- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/socketIO_client/__init__.py b/socketIO_client/__init__.py index 7e75955..113c3bb 100644 --- a/socketIO_client/__init__.py +++ b/socketIO_client/__init__.py @@ -23,10 +23,11 @@ class EngineIO(LoggingMixin): def __init__( self, host, port=None, Namespace=EngineIONamespace, wait_for_connection=True, transports=TRANSPORTS, - resource='engine.io', **kw): + resource='engine.io', hurry_interval_in_seconds=1, **kw): self._is_secure, self._url = parse_host(host, port, resource) self._wait_for_connection = wait_for_connection self._client_transports = transports + self._hurry_interval_in_seconds = hurry_interval_in_seconds self._http_session = prepare_http_session(kw) self._log_name = self._url self._wants_to_close = False @@ -74,12 +75,14 @@ class EngineIO(LoggingMixin): except AttributeError: pass ping_interval = self._engineIO_session.ping_interval + if self._transport_name.endswith('-polling'): + hurry_interval_in_seconds = self._hurry_interval_in_seconds + else: + hurry_interval_in_seconds = ping_interval self._heartbeat_thread = HeartbeatThread( send_heartbeat=self._ping, relax_interval_in_seconds=ping_interval, - hurry_interval_in_seconds=1 if self._transport_name in [ - 'xhr-polling', - ] else ping_interval) + hurry_interval_in_seconds=hurry_interval_in_seconds) self._heartbeat_thread.start() def _connect_namespaces(self): @@ -261,13 +264,13 @@ class SocketIO(EngineIO): def __init__( self, host, port=None, Namespace=SocketIONamespace, wait_for_connection=True, transports=TRANSPORTS, - resource='socket.io', **kw): + resource='socket.io', hurry_interval_in_seconds=1, **kw): self._namespace_by_path = {} self._callback_by_ack_id = {} self._ack_id = 0 super(SocketIO, self).__init__( host, port, Namespace, wait_for_connection, transports, - resource, **kw) + resource, hurry_interval_in_seconds, **kw) # Connect @@ -400,7 +403,7 @@ class SocketIO(EngineIO): event = args.pop(0) except IndexError: raise PacketError('missing event name') - if data_parsed.ack_id: + if data_parsed.ack_id is not None: args.append(self._prepare_to_send_ack( data_parsed.path, data_parsed.ack_id)) find_packet_callback(event)(*args) diff --git a/socketIO_client/tests/__init__.py b/socketIO_client/tests/__init__.py index 135215d..b17e1e5 100644 --- a/socketIO_client/tests/__init__.py +++ b/socketIO_client/tests/__init__.py @@ -138,7 +138,7 @@ class BaseMixin(object): }) def test_namespace_ack(self): - 'Trigger server callback' + 'Respond to a server callback request within a namespace' chat_namespace = self.socketIO.define(Namespace, '/chat') chat_namespace.emit('trigger_server_expects_callback', PAYLOAD) self.socketIO.wait(self.wait_time_in_seconds)