Browse Source

SocketIOEncoder memory leak fixed

master
Nikita 12 years ago
parent
commit
d1771b0d67
  1. 8
      src/main/java/com/corundumstudio/socketio/SocketIOEncoder.java
  2. 3
      src/main/java/com/corundumstudio/socketio/SocketIOPipelineFactory.java

8
src/main/java/com/corundumstudio/socketio/SocketIOEncoder.java

@ -57,9 +57,10 @@ import com.corundumstudio.socketio.messages.XHRPacketMessage;
import com.corundumstudio.socketio.messages.XHROutMessage;
import com.corundumstudio.socketio.parser.Encoder;
import com.corundumstudio.socketio.parser.Packet;
import com.corundumstudio.socketio.transport.BaseClient;
@Sharable
public class SocketIOEncoder extends SimpleChannelDownstreamHandler implements MessageHandler {
public class SocketIOEncoder extends SimpleChannelDownstreamHandler implements MessageHandler, Disconnectable {
class XHRClientEntry {
@ -216,4 +217,9 @@ public class SocketIOEncoder extends SimpleChannelDownstreamHandler implements M
sendMessage(xhrErrorMessage.getOrigin(), null, channel, message);
}
@Override
public void onDisconnect(BaseClient client) {
sessionId2ActiveChannelId.remove(client.getSessionId());
}
}

3
src/main/java/com/corundumstudio/socketio/SocketIOPipelineFactory.java

@ -181,13 +181,14 @@ public class SocketIOPipelineFactory implements ChannelPipelineFactory, Disconne
}
public void onDisconnect(BaseClient client) {
log.debug("Client with sessionId: {} disconnected", client.getSessionId());
heartbeatHandler.onDisconnect(client);
ackManager.onDisconnect(client);
xhrPollingTransport.onDisconnect(client);
webSocketTransport.onDisconnect(client);
flashSocketTransport.onDisconnect(client);
authorizeHandler.onDisconnect(client);
socketIOEncoder.onDisconnect(client);
log.debug("Client with sessionId: {} disconnected", client.getSessionId());
}
public void stop() {

Loading…
Cancel
Save