diff --git a/src/main/java/com/corundumstudio/socketio/SocketIOServer.java b/src/main/java/com/corundumstudio/socketio/SocketIOServer.java index c20e4ea91..ff378ce8e 100644 --- a/src/main/java/com/corundumstudio/socketio/SocketIOServer.java +++ b/src/main/java/com/corundumstudio/socketio/SocketIOServer.java @@ -57,6 +57,7 @@ public class SocketIOServer implements ClientListeners { private SocketIOChannelInitializer pipelineFactory = new SocketIOChannelInitializer(); + private Channel channel; private EventLoopGroup bossGroup; private EventLoopGroup workerGroup; @@ -151,6 +152,7 @@ public Future startAsync() { @Override public void operationComplete(Future future) throws Exception { if (future.isSuccess()) { + channel = ((ChannelFuture)future).channel(); log.info("SocketIO server started at port: {}", configCopy.getPort()); } else { log.error("SocketIO server start failed at port: {}!", configCopy.getPort()); @@ -190,6 +192,9 @@ protected void initGroups() { * Stop server */ public void stop() { + if(channel != null) { + channel.close().syncUninterruptibly(); + } bossGroup.shutdownGracefully().syncUninterruptibly(); workerGroup.shutdownGracefully().syncUninterruptibly();