作者freeman371 (自由人371)
看板Ajax
標題[問題] 不用一直傳請求就能偵測是否上線的方法
時間Thu Apr 30 19:57:03 2020
我一直想不到有什麼其他的方法解決
就是要偵測某個使用者目前有沒有在某個頁面上線中的方法
目前的方法很傳統很笨
就是使用者上了我的頁面之後
就設setInterval,每隔一段時間就傳一次ajax請求到伺服器
伺服器再依據每次請求的時間戳來判斷該使用者是否符合正在上線中的條件
我知道這方法很爛而且很耗網路頻寬和造成伺服器負擔
但這也是最直覺想到且最方便的方法了
不知道有沒有人有更好更有效能的方法?
(有想過用Websocket,可是當使用者網路突然斷線或發生無預警不可預知的離線,伺服
器就無法偵測使用者是否仍上線中)
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.169.168.211 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Ajax/M.1588247825.A.9AB.html
1F:→ brianwu1201: window.navigator.onLine 04/30 21:36
2F:→ brianwu1201: 或是利用 監聽 window.addEventListener(“online”) 04/30 21:38
3F:→ brianwu1201: window.addEventListener(“offline”) 來分別執行你 04/30 21:38
4F:→ brianwu1201: 想做的事 04/30 21:38
5F:→ ccorn: 最後一段是否有嘗試解決過?照理說client斷線,server也斷線 05/01 00:44
6F:→ ccorn: 時應該可以觸發close event,有close event可以符合你的需 05/01 00:44
7F:→ ccorn: 求嗎? 05/01 00:44
8F:→ VdustR: 可以斷線後一定時間再視為離線 05/04 15:38
9F:→ Semisphere: websocket用心跳機制偵測使用者非預期斷線 05/28 21:18