private void sendServerClosedPacket() { logger.info("sendServerClosedPacket start"); final ChannelGroupFuture write = this.channelGroup.write(new ServerClosePacket()); write.awaitUninterruptibly(5000, TimeUnit.MILLISECONDS); if (logger.isWarnEnabled()) { write.addListener(new ChannelGroupFutureListener() { private final ChannelFutureListener listener = new WriteFailFutureListener(logger, "serverClosePacket write fail", "serverClosePacket write success"); @Override public void operationComplete(ChannelGroupFuture future) throws Exception { for (ChannelFuture channelFuture : future) { channelFuture.addListener(listener); } } }); } logger.info("sendServerClosedPacket end"); }
private void sendPing() { logger.debug("sendPing"); final TimerTask pintTask = new TimerTask() { @Override public void run(Timeout timeout) throws Exception { if (timeout.isCancelled()) { newPingTimeout(this); return; } final ChannelGroupFuture write = channelGroup.write(PingPacket.PING_PACKET); if (logger.isWarnEnabled()) { write.addListener(new ChannelGroupFutureListener() { private final ChannelFutureListener listener = new WriteFailFutureListener(logger, "ping write fail", "ping write success"); @Override public void operationComplete(ChannelGroupFuture future) throws Exception { if (logger.isWarnEnabled()) { for (ChannelFuture channelFuture : future) { channelFuture.addListener(listener); } } } }); } newPingTimeout(this); } }; newPingTimeout(pintTask); }
public void closeChannels() { LOGGER.info("Closing {} open channels.", size()); channels.close().addListener(new ChannelGroupFutureListener() { @Override public void operationComplete(ChannelGroupFuture future) { LOGGER.info("Closed all channels."); } }); }