【问题标题】:How to detect client's disconnect at server when client power off or lost internet connection in netty当客户端断电或在netty中失去互联网连接时如何检测客户端在服务器上的断开连接
【发布时间】:2017-06-29 02:31:53
【问题描述】:

我想在客户端断电或失去互联网连接时检测客户端在服务器上的断开连接,并从列表客户端中删除。我可以吗?

我正在尝试一些问题,但它不起作用。 这是我的代码:

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());
                            }
                        }
                    }
                }

            });

【问题讨论】:

    标签: java network-programming netty


    【解决方案1】:

    唯一“真正”的解决方案是在您的协议中实现类似“ping/pong”的功能。基本上,您写入远程对等体,如果写入失败或远程对等体没有响应,您将假定它已死。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-21
      • 2021-09-25
      • 2012-10-11
      • 1970-01-01
      • 2014-04-14
      • 2018-02-20
      相关资源
      最近更新 更多