Netty websocket优雅地关闭

Netty websocket优雅地关闭

问题描述:

我需要让我的websocket优雅地关闭。首先发送所有在缓冲区中等待的消息,然后关闭。Netty websocket优雅地关闭

channel.flush(); 
channel.close(); 

似乎不正确,因为我没有任何完成处理程序的flush方法来完成后关闭。

有没有办法做到这一点。 Netty使用:4.1.0.Beta3

你可以使用的技巧是写一个空的缓冲区,然后附加一个侦听器到那个调用。 Unpooled.EMPTY_BUFFER可以使这很容易。

channel.writeAndFlush(Unpooled.EMPTY_BUFFER).addListener(... 
    channel.close(); 
)}; 

如果你想要做的就是关闭冲洗后的通道,那么你可以使用ChannelFutureListener.CLOSE简化代码。

channel.writeAndFlush(Unpooled.EMPTY_BUFFER).addListener(ChannelFutureListener.CLOSE); 

如果你这样做往往不够,那么你可能需要编写一个静态辅助方法like the Netty examples do