"作者: 刘鑫 客户端: 设置一个发送心跳的时间间隔 ttime 每间隔 ttime 发送 '' 到服务器 (建议设置成 变量) 检测异常,发送失败表示状态立即变为离线 服务器: 每个线程有一个接收线程类 每一个线程有一个上次接收时间 lastreceive 每次接收到心跳包的时候立即更新 lastreceive 线程池 .."

TCP/UDP用心跳检测机制维持长连接实现

本贴最后更新于 1268 天前,其中的信息可能已经事过景迁
点击展开正文内容


作者: 刘鑫
客户端:
设置一个发送心跳的时间间隔 ttime
每间隔 ttime 发送 "</tttime>" 到服务器 (建议设置成 变量)
检测异常,发送失败表示状态立即变为离线
服务器:
每个线程有一个接收线程类
每一个线程有一个上次接收时间 lastreceive
每次接收到心跳包的时候立即更新 lastreceive
线程池定义一个扫描,判断线程池里面的线程接收时间与当前时间差是否大于设定最大值
是的话就表示客户端已经离线
当然其中要捕获异常

感谢    关注    收藏    赞同    反对    举报    分享
5 回帖    
请输入回帖内容...
  • 88250            
       感谢    赞同    反对    举报    折叠    分享    评论    回复
  • 其他回帖
  • yangyujiao      

    昨天看有个 bug 说系统莫名其妙的服务器断开。原来是用了环信的 im 出的问题。他们新升级的 sdk 里就加入了心跳测试的部分,然后就好了。。。

       感谢    赞同    反对    举报    折叠    分享    评论    回复
  • someone API      

    受教了,写的真好

       感谢    赞同    反对    举报    折叠    分享    评论    回复
  • hacpai1990      

    思路很不错, 要是能给个 demo 那就更好了.

       感谢    赞同    反对    举报    折叠    分享    评论    回复
  • 查看更多回帖