作者freeman371 (自由人371)
看板Ajax
标题[问题] 不用一直传请求就能侦测是否上线的方法
时间Thu Apr 30 19:57:03 2020
我一直想不到有什麽其他的方法解决
就是要侦测某个使用者目前有没有在某个页面上线中的方法
目前的方法很传统很笨
就是使用者上了我的页面之後
就设setInterval,每隔一段时间就传一次ajax请求到伺服器
伺服器再依据每次请求的时间戳来判断该使用者是否符合正在上线中的条件
我知道这方法很烂而且很耗网路频宽和造成伺服器负担
但这也是最直觉想到且最方便的方法了
不知道有没有人有更好更有效能的方法?
(有想过用Websocket,可是当使用者网路突然断线或发生无预警不可预知的离线,伺服
器就无法侦测使用者是否仍上线中)
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 118.169.168.211 (台湾)
※ 文章网址: https://webptt.com/cn.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