From 3d8efe0eb484cb21d19bba9765ef4123a9ac271a Mon Sep 17 00:00:00 2001 From: Roy Hyunjin Han Date: Sun, 22 Feb 2015 20:29:12 -0500 Subject: [PATCH] Fix emit bug --- socketIO_client/__init__.py | 38 +++++++++++++++++------------------ socketIO_client/parsers.py | 1 + socketIO_client/transports.py | 10 +-------- 3 files changed, 20 insertions(+), 29 deletions(-) diff --git a/socketIO_client/__init__.py b/socketIO_client/__init__.py index 1a97d89..ff6230b 100644 --- a/socketIO_client/__init__.py +++ b/socketIO_client/__init__.py @@ -21,7 +21,7 @@ LoggingNamespace = LoggingSocketIONamespace class EngineIO(LoggingMixin): def __init__( - self, host, port=None, Namespace=None, + self, host, port=None, Namespace=EngineIONamespace, wait_for_connection=True, transports=TRANSPORTS, resource='engine.io', **kw): self._is_secure, self._url = parse_host(host, port, resource) @@ -30,32 +30,29 @@ class EngineIO(LoggingMixin): self._http_session = prepare_http_session(kw) self._log_name = self._url self._wants_to_close = False + self._connected = False if Namespace: self.define(Namespace) + # self._transport # Connect - @property - def connected(self): - try: - return self._connected - except AttributeError: - return False - @property def _transport(self): - try: - if self.connected: - return self._transport_instance - except AttributeError: - pass + print 't1' + if self._connected: + return self._transport_instance + print 't2' self._engineIO_session = self._get_engineIO_session() + print 't3' self._transport_instance = self._negotiate_transport() + print 't4' self._connect_namespaces() + print 't5' self._connected = True - for engineIO_packet in self._transport_instance.recv_packet(): - self._transport_instance.queue_packet(engineIO_packet) + print 't6 starting heartbeat' self._reset_heartbeat() + print 't7' return self._transport_instance def _get_engineIO_session(self): @@ -144,7 +141,7 @@ class EngineIO(LoggingMixin): def _close(self): self._wants_to_close = True - if not self.connected: + if not self._connected: return engineIO_packet_type = 1 self._transport.send_packet(engineIO_packet_type, '') @@ -274,7 +271,7 @@ class SocketIO(EngineIO): """ def __init__( - self, host, port=None, Namespace=None, + self, host, port=None, Namespace=SocketIONamespace, wait_for_connection=True, transports=TRANSPORTS, resource='socket.io', **kw): self._namespace_by_path = {} @@ -329,7 +326,7 @@ class SocketIO(EngineIO): self._message(str(socketIO_packet_type) + socketIO_packet_data) def disconnect(self, path=''): - if not self.connected: + if not self._connected: return if path: socketIO_packet_type = 1 @@ -351,10 +348,11 @@ class SocketIO(EngineIO): print 'z3' ack_id = self._set_ack_callback(callback) if callback else None print 'z4' + args = [event] + list(args) socketIO_packet_type = 2 - print 'z5' + print 'z5 path=%s ack_id=%s args=%s' % (path, ack_id, str(args)) socketIO_packet_data = format_socketIO_packet_data(path, ack_id, args) - print 'z6' + print 'z6 emitting %s' % str(socketIO_packet_data) self._message(str(socketIO_packet_type) + socketIO_packet_data) print 'z7' diff --git a/socketIO_client/parsers.py b/socketIO_client/parsers.py index 1ee9f2f..957116c 100644 --- a/socketIO_client/parsers.py +++ b/socketIO_client/parsers.py @@ -59,6 +59,7 @@ def format_socketIO_packet_data(path=None, ack_id=None, args=None): socketIO_packet_data = str(ack_id) + socketIO_packet_data if path: socketIO_packet_data = path + ',' + socketIO_packet_data + print 'format_socketIO_packet_data = %s' % socketIO_packet_data return socketIO_packet_data diff --git a/socketIO_client/transports.py b/socketIO_client/transports.py index 0ca398d..6cd012c 100644 --- a/socketIO_client/transports.py +++ b/socketIO_client/transports.py @@ -16,19 +16,13 @@ class AbstractTransport(object): self.is_secure = is_secure self.url = url self.engineIO_session = engineIO_session - self.engineIO_packets = [] def recv_packet(self): - while self.engineIO_packets: - yield self.engineIO_packets.pop(0) + pass def send_packet(self, engineIO_packet_type, engineIO_packet_data): pass - def queue_packet(self, engineIO_packet): - print 'queue_packet %s' % str(engineIO_packet) - self.engineIO_packets.append(engineIO_packet) - class XHR_PollingTransport(AbstractTransport): @@ -53,8 +47,6 @@ class XHR_PollingTransport(AbstractTransport): self.kw_post = {} def recv_packet(self): - for engineIO_packet in super(XHR_PollingTransport, self).recv_packet(): - yield engineIO_packet params = dict(self.params) params['t'] = self._get_timestamp() response = get_response(