vue.js消除websocket重复订阅

vue.js的a页面有一个a函数是订阅websocket,切换到其他页面再切换回来,因为a页面的a函数是在mounted中执行的,因此又订阅一遍,导致客户端收到重复的消息,但是需求是在离开a页面的时候还不能取消订阅,有没有什么办法让它不重复订阅。

阅读 7.9k
2 个回答

1.离开页面时,给服务端发送个消息,需要与后端协商,取消订阅。
2.离开页面时,ws有个close()方法,调用即可。

localStorage 定义变量啊,每次打开此页面,先判断是否有值,没值就连接socket, 并存值, 有值直接return啊
在 `

mounted ()  {
    if ( !localStorage.getItem('aaa') ) {
        this.socket();
        localStorage.setItem('sss', 'aaa')
    }
}

`

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题