diff --git a/src/main/java/com/corundumstudio/socketio/handler/ClientHead.java b/src/main/java/com/corundumstudio/socketio/handler/ClientHead.java index 82cd860..0612a59 100644 --- a/src/main/java/com/corundumstudio/socketio/handler/ClientHead.java +++ b/src/main/java/com/corundumstudio/socketio/handler/ClientHead.java @@ -125,7 +125,7 @@ public class ClientHead { public void run() { ClientHead client = clientsBox.get(sessionId); if (client != null) { - client.onChannelDisconnect(); + client.disconnect(); log.debug("{} removed due to ping timeout", sessionId); } } @@ -205,7 +205,9 @@ public class ClientHead { public void disconnect() { ChannelFuture future = send(new Packet(PacketType.DISCONNECT)); - future.addListener(ChannelFutureListener.CLOSE); + if(future != null) { + future.addListener(ChannelFutureListener.CLOSE); + } onChannelDisconnect(); } diff --git a/src/main/java/com/corundumstudio/socketio/listener/ExceptionListenerAdapter.java b/src/main/java/com/corundumstudio/socketio/listener/ExceptionListenerAdapter.java index 89efc0f..444a464 100644 --- a/src/main/java/com/corundumstudio/socketio/listener/ExceptionListenerAdapter.java +++ b/src/main/java/com/corundumstudio/socketio/listener/ExceptionListenerAdapter.java @@ -45,4 +45,9 @@ public abstract class ExceptionListenerAdapter implements ExceptionListener { return false; } + @Override + public void onPingException(Exception e, SocketIOClient client) { + + } + }