我是靠谱客的博主 留胡子小虾米,最近开发中收集的这篇文章主要介绍Netty服务器自动识别客户端已断开,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

    最近开发了使用的Netty的长连接服务器,客户端支持使用socket和websocket的js连接,也可以使用flash连接。但是遇到一个很麻烦的问题,当客户端的网络断开或因为异常断开的时候,服务器并不能立即自动知道客户端已断开。幸好遇到一个同事,比较熟悉网络,因此帮忙解决了这个问题,特此写在这,希望能帮助使用netty的朋友们。

    之前尝试解决问题的时候,看了源码,发现了一个方法:

public class TextWebSocketFrameHandler extends SimpleChannelInboundHandler<WebSocketFrame>{

    @Override

        public void handlerRemoved(ChannelHandlerContext ctx) throws Exception {

            ......//此处对断网进行了处理

        }

}

这种方法可以识别浏览器断开的情况,但是网络断开识别不了。然后同事说,linux可以配置网络,试了试。sysctl.conf文件里面设置:

net.ipv4.tcp_keepalive_time = 10

net.ipv4.tcp_keepalive_probes = 2

net.ipv4.tcp_keepalive_intvl = 2

结果真的好使!时间可以自己设置。原理自己查。。

转载于:https://blog.51cto.com/xiaochu/1642061

最后

以上就是留胡子小虾米为你收集整理的Netty服务器自动识别客户端已断开的全部内容,希望文章能够帮你解决Netty服务器自动识别客户端已断开所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(66)

评论列表共有 0 条评论

立即
投稿
返回
顶部