我有一个使用 Laravel Echo 和 Pusher(类似于 Socket.io)的聊天应用。
我在这里遇到的问题是,如果另一端没有单个用户在线,我将无法更新数据库中的用户在线状态
在互联网上搜索并发现了 Javascript 中的 unload
事件,但他们说处理这个问题不可靠。
我还没有在 Laravel Echo 上找到触发它的事件,即使每次用户加载页面或浏览器关闭时 Pusher 都会记录“断开连接”事件
处理这个问题最有效的方法是什么?
答案 0 :(得分:0)
我不知道使用过的工具。也许使用假用户/机器人来让至少有人始终在线?
关于关闭窗口。还有其他适合于此的事件。最明显和推荐的是beforeunload
。另一个选项是 pagehide
,但目前支持较少,含义略有不同。
navigator.sendBeacon()
在这里也可能用作网络请求传输。这样浏览器就不必等待响应。