首页 > 解决方案 > 如何检测用户离开网站?

问题描述

我正在使用react-router'sBrowserRouterRouteand Redux。我想在用户离开网站或注销时调度一个动作。我也在使用socket.io,但不能依赖 ,disconnect因为站点内页面的更改会导致断开连接。

我查看了window.onbeforeunloadand window.onunload,但它们也不起作用,因为当我更改站点中的页面时它们会被调用。

感谢所有帮助:)

标签: reduxsocket.ioreact-router

解决方案


我不熟悉 React/Redux,但我怀疑这是因为您的客户端的套接字连接是在正在创建和销毁的视图中创建的。这意味着你有一个持久性问题。

由于 Redux 用于状态管理,因此您应该将您的套接字实例存储在那里。如果您的用户退出,那么您可以手动断开连接并丢弃该实例,或者如果您的用户离开您的页面,那么它自然会断开连接。


推荐阅读