我刚开始使用Pusher,到目前为止一切都很棒。
但我意识到,当我的用户打开和关闭,或点击我网站上的内部链接时,连接会在页面卸载时自动断开连接。
每次导航到新页面时,都会使用户连接和断开连接。
有没有办法让用户的订阅和连接在我浏览我的网站时保持不变?
编辑:为了澄清,我理解Pusher在用户关闭浏览器或页面时断开连接的行为。我只是想知道如果该人访问同一站点内的另一个内部链接,我们如何保持连接存活。或者断开最佳做法?如果是这样,为什么?
答案 0 :(得分:3)
正如@ devnull69所说,目前您需要创建应用程序以使其不执行标准页面导航 - 您可以将应用程序构建为SPA (single-page-application)。这样,页面导航之间就没有页面卸载和加载。
可以使用shared web workers在页面加载之间保持连接。但正如CanIUse所展示的那样,浏览器支持尚不完善。
Pusher确实计划提供message history,这意味着在重新连接时可以获取页面加载期间遗漏的任何消息。
另见:
答案 1 :(得分:1)
唯一的解决方法是从常规页面刷新切换到Ajax。这将使您能够保持websocket连接,同时仅加载使用Ajax请求更改的页面部分。