0
我們有幾個Netty客戶端可以共享並且不包含任何可變狀態的處理程序。處理程序被添加到StaticChannelPipline
。我想知道是否有辦法知道channelDisconnected
是由於服務器關閉連接還是不能通過調用客戶端指定的回調來通知該情況。如何知道通道斷開是否來自Netty客戶端中的客戶端或服務器
我們有幾個Netty客戶端可以共享並且不包含任何可變狀態的處理程序。處理程序被添加到StaticChannelPipline
。我想知道是否有辦法知道channelDisconnected
是由於服務器關閉連接還是不能通過調用客戶端指定的回調來通知該情況。如何知道通道斷開是否來自Netty客戶端中的客戶端或服務器
當您的應用程序調用Channel.close()
時,您可以覆蓋SimpleChannelDownstreamHandler.closeRequested()
以獲得通知。
但是,即使您調用了Channel.close()
,遠程對等方總是會嘗試同時關閉連接。因此,根據「哪一方」關閉連接來確定應用程序的行爲並不是一個好主意。
或者,您可以在協議中定義good-bye
消息,並要求客戶端在斷開連接之前發送再見消息。那麼你最好知道客戶是否終止了它的連接。
謝謝。我想知道在服務器關閉連接時能夠調用客戶端偵聽器回調。我會解決一個isConnected()方法,客戶端的用戶可以使用它。 – chrsan