Heartbeat was incorrectly set and resulted in disconnects on certain server implementations.
This commit is contained in:
parent
8337e7bae6
commit
7dca8f9ba4
2 changed files with 7 additions and 2 deletions
|
|
@ -407,6 +407,7 @@ class SocketIO(object):
|
||||||
'6': self._on_ack,
|
'6': self._on_ack,
|
||||||
'7': self._on_error,
|
'7': self._on_error,
|
||||||
'8': self._on_noop,
|
'8': self._on_noop,
|
||||||
|
'': self._on_noop
|
||||||
}[code]
|
}[code]
|
||||||
except KeyError:
|
except KeyError:
|
||||||
raise PacketError('unexpected code (%s)' % code)
|
raise PacketError('unexpected code (%s)' % code)
|
||||||
|
|
|
||||||
|
|
@ -85,6 +85,8 @@ class _AbstractTransport(object):
|
||||||
def send_packet(self, code, path='', data='', callback=None):
|
def send_packet(self, code, path='', data='', callback=None):
|
||||||
packet_id = self.set_ack_callback(callback) if callback else ''
|
packet_id = self.set_ack_callback(callback) if callback else ''
|
||||||
packet_parts = str(code), packet_id, path, encode_unicode(data)
|
packet_parts = str(code), packet_id, path, encode_unicode(data)
|
||||||
|
if not data:
|
||||||
|
packet_parts = packet_parts[:-1]
|
||||||
packet_text = ':'.join(packet_parts)
|
packet_text = ':'.join(packet_parts)
|
||||||
self.send(packet_text)
|
self.send(packet_text)
|
||||||
self._log(logging.DEBUG, '[packet sent] %s', packet_text)
|
self._log(logging.DEBUG, '[packet sent] %s', packet_text)
|
||||||
|
|
@ -143,6 +145,8 @@ class _WebsocketTransport(_AbstractTransport):
|
||||||
http_session = _prepare_http_session(kw)
|
http_session = _prepare_http_session(kw)
|
||||||
req = http_session.prepare_request(requests.Request('GET', url))
|
req = http_session.prepare_request(requests.Request('GET', url))
|
||||||
headers = ['%s: %s' % item for item in req.headers.items()]
|
headers = ['%s: %s' % item for item in req.headers.items()]
|
||||||
|
headers.append('Connection: keep-alive')
|
||||||
|
|
||||||
try:
|
try:
|
||||||
self._connection = websocket.create_connection(url, header=headers)
|
self._connection = websocket.create_connection(url, header=headers)
|
||||||
except socket.timeout as e:
|
except socket.timeout as e:
|
||||||
|
|
@ -318,10 +322,10 @@ def _get_response(request, *args, **kw):
|
||||||
response = request(*args, **kw)
|
response = request(*args, **kw)
|
||||||
except requests.exceptions.Timeout as e:
|
except requests.exceptions.Timeout as e:
|
||||||
raise TimeoutError(e)
|
raise TimeoutError(e)
|
||||||
except requests.exceptions.ConnectionError as e:
|
|
||||||
raise ConnectionError(e)
|
|
||||||
except requests.exceptions.SSLError as e:
|
except requests.exceptions.SSLError as e:
|
||||||
raise ConnectionError('could not negotiate SSL (%s)' % e)
|
raise ConnectionError('could not negotiate SSL (%s)' % e)
|
||||||
|
except requests.exceptions.ConnectionError as e:
|
||||||
|
raise ConnectionError(e)
|
||||||
status = response.status_code
|
status = response.status_code
|
||||||
if 200 != status:
|
if 200 != status:
|
||||||
raise ConnectionError('unexpected status code (%s)' % status)
|
raise ConnectionError('unexpected status code (%s)' % status)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue