[英]How to detect client's disconnect at server when client power off or lost internet connection in netty
我想在客戶端關閉電源或失去互聯網連接並從列表客戶端中刪除時檢測客戶端在服務器上的斷開連接。 我可以做嗎 ?
我正在嘗試解決某些問題,但無法正常工作。 這是我的代碼:
final ChannelFuture cf = chc.channel().writeAndFlush(new TextWebSocketFrame(dataSend));
cf.addListener(new GenericFutureListener<Future<? super Void>>() {
public void operationComplete(Future<? super Void> f) throws Exception {
if (!cf.isSuccess()) {
ServerHandler.agentChannelList.get(tranfer.getUsername()).remove(chc);
if (ServerHandler.agentChannelList.get(tranfer.getUsername()).isEmpty()) {
if (ServerHandler.agentOnlineQueue.containsKey(tranfer.getPage_id())) {
ServerHandler.agentOnlineQueue.get(tranfer.getPage_id()).remove(tranfer.getUsername());
}
}
}
}
});
唯一的“真實”解決方案是在協議中實現類似“乒乓”的功能。 基本上,您寫入遠程對等方,如果寫入失敗,或者遠程對等方不響應,您將認為它已死。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.