默认
发表评论 10
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
求教浏览器打开多个页面WebSoket连接,只有最后一个窗口可收到推送
阅读(28048) | 评论(10 收藏 淘帖
如题,打开多个页面WebSoket连接,但是只有最后一个打开的页面可以收到推送
例如:先是打开了两个标签页窗口(页面打开就会进行WebSoket连接),同时未关闭页面,在第三次打开页面后,当后端服务推送给前端的时候,都会被第三次打开的标签页窗口所接收,也就是第三次打开的页面会收到三次推送信息,前两个标签页窗口没有收到后端推送的信息,但是前两个标签页是可以推送信息给后端的



不太理解为什么会这样子

即时通讯网 - 即时通讯开发者社区! 来源: - 即时通讯开发者社区!

推荐方案
评论 10
websocket的生命周期只有一个窗口内,想做到跨窗口都难。。。

你用的是什么浏览器?
引用:JackJiang 发表于 2021-12-06 11:03
websocket的生命周期只有一个窗口内,想做到跨窗口都难。。。

你用的是什么浏览器?

就是在macOS系统下使用的谷歌、火狐、Safari (都是新的版本)都会这样,网上查发现说这个问题的并不多,所以就很纳闷
引用:JackJiang 发表于 2021-12-06 11:03
websocket的生命周期只有一个窗口内,想做到跨窗口都难。。。

你用的是什么浏览器?

刚刚测试发现在 win10 下 谷歌也会出现这样的情况
引用:byliangcheng 发表于 2021-12-07 18:00
就是在macOS系统下使用的谷歌、火狐、Safari (都是新的版本)都会这样,网上查发现说这个问题的并不多, ...

你说的问题,我从没遇到过,websocket我从2016年开始玩到现在,浏览器也用过很多。你的websocket是基于HTML5的原生api写的,还是用了什么第3方库?
引用:JackJiang 发表于 2021-12-07 20:52
你说的问题,我从没遇到过,websocket我从2016年开始玩到现在,浏览器也用过很多。你的websocket是基于HT ...

是在Vue里用原生的 new WebSocket() 这种方式写的,后面测试在win10下 谷歌浏览器也会有这种情况
引用:byliangcheng 发表于 2021-12-07 20:57
是在Vue里用原生的 new WebSocket() 这种方式写的,后面测试在win10下 谷歌浏览器也会有这种情况

你这是单页应用吧,你所谓的一页页,都是在同一个window下?
引用:JackJiang 发表于 2021-12-07 21:51
你这是单页应用吧,你所谓的一页页,都是在同一个window下?

是单页应用 但是是直接打开了一个新的窗口然后重新访问了这个页面 不在一个window下
引用:byliangcheng 发表于 2021-12-07 23:17
是单页应用 但是是直接打开了一个新的窗口然后重新访问了这个页面 不在一个window下

如果不是在同一个window下肯定不会有这种问题,所以你自已去确认一下吧,这种问题,没办法帮你验证一下
引用:JackJiang 发表于 2021-12-08 11:19
如果不是在同一个window下肯定不会有这种问题,所以你自已去确认一下吧,这种问题,没办法帮你验证一下

ok  谢谢哈
postMessage
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部