Browse Source

fix invalid namespace

socketio.js 2.0 + netty-socketio-1.7.16
reason: 
namespace request payload contains url query string info, like 
`8:40/chat,`
`49:40/chatroom?uid=ba7822bee25940ada9d2a987670afc5d,`

it does'n match `/chat` or `/chatroom` in namespacehub

fix: 
sub the query string
master
Redliver 7 years ago
committed by GitHub
parent
commit
98467ccb38
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 19
      src/main/java/com/corundumstudio/socketio/protocol/PacketDecoder.java

19
src/main/java/com/corundumstudio/socketio/protocol/PacketDecoder.java

@ -279,7 +279,7 @@ public class PacketDecoder {
if (packet.getType() == PacketType.MESSAGE) {
if (packet.getSubType() == PacketType.CONNECT
|| packet.getSubType() == PacketType.DISCONNECT) {
packet.setNsp(readString(frame));
packet.setNsp(readNamespace(frame));
}
if (packet.hasAttachments() && !packet.isAttachmentsLoaded()) {
@ -309,5 +309,22 @@ public class PacketDecoder {
}
}
}
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);
}
endIndex = frame.bytesBefore((byte)',');
if(endIndex > 0){
return readString(frame,endIndex);
}
return readString(frame);
}
}
Loading…
Cancel
Save