㈠ asp.net怎样实现心跳监测
1、服务器端运行一个常驻线程,用于实时检查在线列表中,是否存在超时用户,有的话,就做相应处理,并将用户从在线列表中删除
2、用户登陆成功后,在客户端用JavaScript,使用定时器,每间隔固定时间(比如20秒),通过Ajax异步发送请求服务器某个页面,或者WebService之类的接口。这就是所谓的心跳请求。
3、服务器收到用户的心跳请求后,更新用户最后一次联系服务器的时间。
这样服务器检查超时的时候,实际上就可以把当前时间,减去用户最后一次联系服务器的时间,如果超过一个指定值,比如1分钟,那就认为这个用户离线了。
PS:原理很简单,但要设计一个高效的机制,还是要多考虑实现的算法,特别是服务器端的在线列表,和检查超时的机制。我曾经在几年前做了一个实现,后来重写了N遍,才发现了一个相对比较合理的方法。
㈡ c# c/s 之间如何做心跳检测
用SOCKET,然后再看具体网络情况,决定是C端还是S端发起心跳包。
一般会是C端开始工作后主动连接S端,连接成功后每过指定的时间发一个包,包的内容可以很简单,就一个0。而S端收到后再反一个包。这样就完成了心跳过程,如果在超出的时间没有接到客户端的心跳包,服务器则断开客户端连接,或者做其他操作