㈠ asp.net怎樣實現心跳監測
1、伺服器端運行一個常駐線程,用於實時檢查在線列表中,是否存在超時用戶,有的話,就做相應處理,並將用戶從在線列表中刪除
2、用戶登陸成功後,在客戶端用JavaScript,使用定時器,每間隔固定時間(比如20秒),通過Ajax非同步發送請求伺服器某個頁面,或者WebService之類的介面。這就是所謂的心跳請求。
3、伺服器收到用戶的心跳請求後,更新用戶最後一次聯系伺服器的時間。
這樣伺服器檢查超時的時候,實際上就可以把當前時間,減去用戶最後一次聯系伺服器的時間,如果超過一個指定值,比如1分鍾,那就認為這個用戶離線了。
PS:原理很簡單,但要設計一個高效的機制,還是要多考慮實現的演算法,特別是伺服器端的在線列表,和檢查超時的機制。我曾經在幾年前做了一個實現,後來重寫了N遍,才發現了一個相對比較合理的方法。
㈡ c# c/s 之間如何做心跳檢測
用SOCKET,然後再看具體網路情況,決定是C端還是S端發起心跳包。
一般會是C端開始工作後主動連接S端,連接成功後每過指定的時間發一個包,包的內容可以很簡單,就一個0。而S端收到後再反一個包。這樣就完成了心跳過程,如果在超出的時間沒有接到客戶端的心跳包,伺服器則斷開客戶端連接,或者做其他操作