Netty websocket 优雅地关闭
Netty websocket close gracefully
我需要让我的 websocket 正常关闭。首先发送缓冲区中等待的所有消息,然后关闭。
channel.flush();
channel.close();
似乎不对,因为我没有任何完成处理程序可以让 flush 方法在完成后关闭。
有什么办法可以做到这一点。
使用的 Netty:4.1.0.Beta3
您可以使用的技巧是 writeAndFlush 一个空缓冲区,然后将侦听器附加到该调用。 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。
我需要让我的 websocket 正常关闭。首先发送缓冲区中等待的所有消息,然后关闭。
channel.flush();
channel.close();
似乎不对,因为我没有任何完成处理程序可以让 flush 方法在完成后关闭。
有什么办法可以做到这一点。 使用的 Netty:4.1.0.Beta3
您可以使用的技巧是 writeAndFlush 一个空缓冲区,然后将侦听器附加到该调用。 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。