0
我们有几个Netty客户端可以共享并且不包含任何可变状态的处理程序。处理程序被添加到StaticChannelPipline
。我想知道是否有办法知道channelDisconnected
是由于服务器关闭连接还是不能通过调用客户端指定的回调来通知该情况。如何知道通道断开是否来自Netty客户端中的客户端或服务器
我们有几个Netty客户端可以共享并且不包含任何可变状态的处理程序。处理程序被添加到StaticChannelPipline
。我想知道是否有办法知道channelDisconnected
是由于服务器关闭连接还是不能通过调用客户端指定的回调来通知该情况。如何知道通道断开是否来自Netty客户端中的客户端或服务器
当您的应用程序调用Channel.close()
时,您可以覆盖SimpleChannelDownstreamHandler.closeRequested()
以获得通知。
但是,即使您调用了Channel.close()
,远程对等方总是会尝试同时关闭连接。因此,根据“哪一方”关闭连接来确定应用程序的行为并不是一个好主意。
或者,您可以在协议中定义good-bye
消息,并要求客户端在断开连接之前发送再见消息。那么你最好知道客户是否终止了它的连接。
谢谢。我想知道在服务器关闭连接时能够调用客户端侦听器回调。我会解决一个isConnected()方法,客户端的用户可以使用它。 – chrsan