From 64d507937fd3673cccc03d891d5391c6ee56d0aa Mon Sep 17 00:00:00 2001 From: johnlai Date: Tue, 4 Aug 2020 15:30:33 +0800 Subject: [PATCH] fix namespace bug --- .../socketio/protocol/PacketDecoder.java | 23 +++++++++++-------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/corundumstudio/socketio/protocol/PacketDecoder.java b/src/main/java/com/corundumstudio/socketio/protocol/PacketDecoder.java index c3bd95a..016ea5a 100644 --- a/src/main/java/com/corundumstudio/socketio/protocol/PacketDecoder.java +++ b/src/main/java/com/corundumstudio/socketio/protocol/PacketDecoder.java @@ -300,22 +300,27 @@ public class PacketDecoder { } } } - - private String readNamespace(ByteBuf frame){ + + private String readNamespace(ByteBuf frame) { + /** * namespace post request with url queryString, like * /message?a=1, * /message, */ - int endIndex = frame.bytesBefore((byte)'?'); - if(endIndex > 0){ - return readString(frame,endIndex); + ByteBuf buffer = frame.slice(); + // skip this frame + frame.readerIndex(frame.readerIndex() + frame.readableBytes()); + + int endIndex = buffer.bytesBefore((byte) '?'); + if (endIndex > 0) { + return readString(buffer, endIndex); } - endIndex = frame.bytesBefore((byte)','); - if(endIndex > 0){ - return readString(frame,endIndex); + endIndex = buffer.bytesBefore((byte) ','); + if (endIndex > 0) { + return readString(buffer, endIndex); } - return readString(frame); + return readString(buffer); } }