Browse Source

Fix client not found bug.

master
Nikita 12 years ago
parent
commit
4cb9f7119c
  1. 7
      src/main/java/com/corundumstudio/socketio/transport/WebSocketTransport.java
  2. 7
      src/main/java/com/corundumstudio/socketio/transport/XHRPollingTransport.java

7
src/main/java/com/corundumstudio/socketio/transport/WebSocketTransport.java

@ -83,6 +83,13 @@ public class WebSocketTransport extends BaseTransport {
} else if (msg instanceof TextWebSocketFrame) {
TextWebSocketFrame frame = (TextWebSocketFrame) msg;
WebSocketClient client = channelId2Client.get(ctx.channel());
if (client == null) {
log.debug("Client with was already disconnected. Channel closed!");
ctx.channel().close();
frame.release();
return;
}
ctx.pipeline().fireChannelRead(new PacketsMessage(client, frame.content()));
frame.release();
} else if (msg instanceof FullHttpRequest) {

7
src/main/java/com/corundumstudio/socketio/transport/XHRPollingTransport.java

@ -87,8 +87,11 @@ public class XHRPollingTransport extends BaseTransport {
QueryStringDecoder queryDecoder = new QueryStringDecoder(req.getUri());
if (queryDecoder.path().startsWith(path)) {
handleMessage(req, queryDecoder, ctx);
req.release();
try {
handleMessage(req, queryDecoder, ctx);
} finally {
req.release();
}
return;
}
}

Loading…
Cancel
Save