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。