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

看板Ajax作者 (自由人371)時間4年前 (2020/04/30 19:57), 編輯推噓0(009)
留言9則, 4人參與, 3年前最新討論串1/1
我一直想不到有什麼其他的方法解決 就是要偵測某個使用者目前有沒有在某個頁面上線中的方法 目前的方法很傳統很笨 就是使用者上了我的頁面之後 就設setInterval,每隔一段時間就傳一次ajax請求到伺服器 伺服器再依據每次請求的時間戳來判斷該使用者是否符合正在上線中的條件 我知道這方法很爛而且很耗網路頻寬和造成伺服器負擔 但這也是最直覺想到且最方便的方法了 不知道有沒有人有更好更有效能的方法? (有想過用Websocket,可是當使用者網路突然斷線或發生無預警不可預知的離線,伺服 器就無法偵測使用者是否仍上線中) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.169.168.211 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Ajax/M.1588247825.A.9AB.html

04/30 21:36, 4年前 , 1F
window.navigator.onLine
04/30 21:36, 1F

04/30 21:38, 4年前 , 2F
或是利用 監聽 window.addEventListener(“online”)
04/30 21:38, 2F

04/30 21:38, 4年前 , 3F
window.addEventListener(“offline”) 來分別執行你
04/30 21:38, 3F

04/30 21:38, 4年前 , 4F
想做的事
04/30 21:38, 4F

05/01 00:44, 4年前 , 5F
最後一段是否有嘗試解決過?照理說client斷線,server也斷線
05/01 00:44, 5F

05/01 00:44, 4年前 , 6F
時應該可以觸發close event,有close event可以符合你的需
05/01 00:44, 6F

05/01 00:44, 4年前 , 7F
求嗎?
05/01 00:44, 7F

05/04 15:38, 4年前 , 8F
可以斷線後一定時間再視為離線
05/04 15:38, 8F

05/28 21:18, 3年前 , 9F
websocket用心跳機制偵測使用者非預期斷線
05/28 21:18, 9F
文章代碼(AID): #1UghqHch (Ajax)