在QQ那样的通讯软件中,如何判断好友是否在线?(100)

  • 主题发起人 主题发起人 jackey89888
  • 开始时间 开始时间
J

jackey89888

Unregistered / Unconfirmed
GUEST, unregistred user!
如题好友上线后,会发来上线包,确认上线。然后如果他下线了它会发来下线报,但是也可能他掉线了,这样就没法收到他的在线信息了。我也想过用计时器来做,比如,要求每分钟发一个在线包,以确认在线状态,如果超过一分钟没有在线包,就判断掉线。但是具体做起来不好办啊,设置好多计时器么?谁有比较好的方法。
 
你把計時器放在服務器和客戶端不就可以了~~~~~~~客戶端最好在運行你的程序的時候只開一個計時器,要不當打開多個客戶端的時候就可能會造成網絡風暴了!!!!
 
純屬個人見解,你看看其他大蝦還有沒有更創造性的方法!
 
服务器定时询问,无应答的客户端视为掉线,服务器再通知其在线好友他掉线了纯属个人愚见
 
判断 心跳
 
对 就是心跳包, 间隔周期时间发送一个心跳包超过多少周期没有接收到心跳包,或没有心跳回复包 认为掉线
 
我的做法了是客户端每分钟发个心跳包给服务器,服务器收到这个心跳包后,将这个客户端的空闲计时清零。服务器设一个时钟计算客户端的空闲时间,若超过1分钟就断掉与它的连接,并视为掉线,然后通过其它客户端。
 
多人接受答案了。
 
后退
顶部