Netty websocket优雅地关闭



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

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

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

有办法做到这一点吗?使用版本:4.1.0.Beta3

可以使用的技巧是writeAndFlush一个空缓冲区,然后为该调用附加一个侦听器。未共享。EMPTY_BUFFER可以使这非常简单。

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

如果你想做的只是在刷新后关闭通道,那么你可以使用ChannelFutureListener。CLOSE来简化代码。

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

如果您经常这样做,那么您可能希望编写一个静态助手方法,就像Netty示例所做的那样。

相关内容

  • 没有找到相关文章