Skip to content

Commit 7f02f7a

Browse files
JavaScript client sends query string attached to namespace
Fixes #124
1 parent 8bba811 commit 7f02f7a

File tree

2 files changed

+10
-0
lines changed

2 files changed

+10
-0
lines changed

socketio/packet.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,9 @@ def decode(self, encoded_packet):
101101
else:
102102
self.namespace = ep[0:sep]
103103
ep = ep[sep + 1:]
104+
q = self.namespace.find('?')
105+
if q != -1:
106+
self.namespace = self.namespace[0:q]
104107
if ep and ep[0].isdigit():
105108
self.id = 0
106109
while ep[0].isdigit():

tests/test_packet.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,13 @@ def test_decode_namespace(self):
9797
self.assertEqual(pkt.namespace, '/bar')
9898
self.assertEqual(pkt.encode(), '2/bar,["foo"]')
9999

100+
def test_decode_namespace_with_query_string(self):
101+
# some Socket.IO clients mistakenly attach the query string to the
102+
# namespace
103+
pkt = packet.Packet(encoded_packet='2/bar?a=b,["foo"]')
104+
self.assertEqual(pkt.namespace, '/bar')
105+
self.assertEqual(pkt.encode(), '2/bar,["foo"]')
106+
100107
def test_encode_namespace_no_data(self):
101108
pkt = packet.Packet(packet_type=packet.EVENT, namespace='/bar')
102109
self.assertEqual(pkt.encode(), '2/bar')

0 commit comments

Comments
 (0)