客户端连上来的时候我保存了客户端的socket对象,现在想定时判断客户端已断开
一般都是心跳包,超时没收到回应,就认为客户端就是断开了。
现在客户端是做了心跳包,我是想有没有办法服务器自己去判断
@拖鞋王子: 心跳是双方的,服务端自己判断有一定的局限性。
1:通过SO_KEEPALIVE来判断,默认是2小时进行一次检测,自己也可以设置检测间隔,但会影响其它系统所有正在使用的Socket,慎用
2:通过SIO_KEEPALIVE_VALS,该选项不同于SO_KEEPALIVE 机制的就是它是针对单个连接的,对系统其他的Sokcet并不影响。