Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion socketIO_client/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -298,9 +298,12 @@ def _process_packet(self, packet):
except KeyError:
raise PacketError(
'unexpected engine.io packet type (%s)' % engineIO_packet_type)
delegate(engineIO_packet_data, namespace)
if engineIO_packet_type == 4:
return engineIO_packet_data

delegate(engineIO_packet_data, namespace)


def _on_open(self, data, namespace):
namespace._find_packet_callback('open')()
Expand Down
4 changes: 4 additions & 0 deletions socketIO_client/exceptions.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,7 @@ class PacketError(SocketIOError):

class TimeoutError(SocketIOError):
pass


class AuthorizationError(SocketIOError):
pass
5 changes: 4 additions & 1 deletion socketIO_client/transports.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
else:
from websocket._ssl_compat import SSLError

from .exceptions import ConnectionError, TimeoutError
from .exceptions import ConnectionError, TimeoutError, AuthorizationError
from .parsers import (
encode_engineIO_content, decode_engineIO_content,
format_packet_text, parse_packet_text)
Expand Down Expand Up @@ -183,7 +183,10 @@ def get_response(request, *args, **kw):
except requests.exceptions.SSLError as e:
raise ConnectionError('could not negotiate SSL (%s)' % e)
status_code = response.status_code

if 200 != status_code:
if status_code == 401:
raise AuthorizationError('unauthorized')
raise ConnectionError('unexpected status code (%s %s)' % (
status_code, response.text))
return response
Expand Down