用户注册到我的应用程序后,一个组件将向Vuex发送一个操作,以开始使用Websocket侦听来自服务器的更新请求。
Vuex动作:
const socket = io(url);
socket.on(id, data => {
...
我正在使用Vuex持久使用LocalStorage来存储状态。但是,如果用户刷新浏览器,则websocket连接将丢失。如果将套接字纳入Vuex状态,则会出现以下错误:
vuex-persistedstate.es.js?0e44:1 Uncaught (in promise) TypeError: Converting circular structure to JSON
--> starting at object with constructor 'Socket'
| property 'io' -> object with constructor 'Manager'
| property 'nsps' -> object with constructor 'Object'
--- property '/' closes the circle
由于Vuex没有生命周期挂钩,刷新后如何恢复websocket连接?
Vuex还应始终在刷新后从后端刷新状态,以确保在websocket连接断开时不会丢失任何更新请求事件。