[問題] 不用一直傳請求就能偵測是否上線的方法

作者: freeman371 (自由人371)   2020-04-30 19:57:03
我一直想不到有什麼其他的方法解決
就是要偵測某個使用者目前有沒有在某個頁面上線中的方法
目前的方法很傳統很笨
就是使用者上了我的頁面之後
就設setInterval,每隔一段時間就傳一次ajax請求到伺服器
伺服器再依據每次請求的時間戳來判斷該使用者是否符合正在上線中的條件
我知道這方法很爛而且很耗網路頻寬和造成伺服器負擔
但這也是最直覺想到且最方便的方法了
不知道有沒有人有更好更有效能的方法?
(有想過用Websocket,可是當使用者網路突然斷線或發生無預警不可預知的離線,伺服
器就無法偵測使用者是否仍上線中)
作者: brianwu1201 (bunny29)   2020-04-30 21:36:00
window.navigator.onLine或是利用 監聽 window.addEventListener(“online”)window.addEventListener(“offline”) 來分別執行你想做的事
作者: ccorn (玉米)   2020-05-01 00:44:00
最後一段是否有嘗試解決過?照理說client斷線,server也斷線時應該可以觸發close event,有close event可以符合你的需求嗎?
作者: VdustR (京)   2020-05-04 15:38:00
可以斷線後一定時間再視為離線
作者: Semisphere (所指之處)   2020-05-28 21:18:00
websocket用心跳機制偵測使用者非預期斷線

Links booklink

Contact Us: admin [ a t ] ucptt.com