[问题] 不用一直传请求就能侦测是否上线的方法

楼主: 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