Skip to content

Commit d31d167

Browse files
support packets with empty payload given as an integer
1 parent ee63afe commit d31d167

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

socketio/packet.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,11 @@ def decode(self, encoded_packet):
6969
necessary to fully decode the packet.
7070
"""
7171
ep = encoded_packet
72-
self.packet_type = int(ep[0:1])
72+
try:
73+
self.packet_type = int(ep[0:1])
74+
except TypeError:
75+
self.packet_type = ep
76+
ep = ''
7377
self.namespace = None
7478
self.data = None
7579
ep = ep[1:]

tests/test_packet.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,13 @@ def test_decode_text_event_packet(self):
3232
self.assertEqual(pkt.data, ['foo'])
3333
self.assertEqual(pkt.encode(), '2["foo"]')
3434

35+
def test_decode_empty_event_packet(self):
36+
pkt = packet.Packet(encoded_packet='1')
37+
self.assertEqual(pkt.packet_type, packet.DISCONNECT)
38+
# same thing, but with a numeric payload
39+
pkt = packet.Packet(encoded_packet=1)
40+
self.assertEqual(pkt.packet_type, packet.DISCONNECT)
41+
3542
def test_encode_binary_event_packet(self):
3643
pkt = packet.Packet(packet_type=packet.EVENT, data=b'1234')
3744
self.assertEqual(pkt.packet_type, packet.BINARY_EVENT)

0 commit comments

Comments
 (0)