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. 3
      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) { } else if (msg instanceof TextWebSocketFrame) {
TextWebSocketFrame frame = (TextWebSocketFrame) msg; TextWebSocketFrame frame = (TextWebSocketFrame) msg;
WebSocketClient client = channelId2Client.get(ctx.channel()); 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())); ctx.pipeline().fireChannelRead(new PacketsMessage(client, frame.content()));
frame.release(); frame.release();
} else if (msg instanceof FullHttpRequest) { } else if (msg instanceof FullHttpRequest) {

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

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

Loading…
Cancel
Save