我将 Vuetify 与 Vuex 和 VueSocketIO 一起用于我的 WebApp,这是代码的示例部分:
Vue.use(new VueSocketIO({
reconnection: true,
debug: true,
connection: SocketIO(`http://${process.env.ip}:4000`),
vuex: {
store,
actionPrefix: 'SOCKET_',
},
}));
如果我理解正确的话,一起使用 Vuex 和 VueSocketIO 使得只能同时使用一个这样的 Socket。
在某些情况下,Vue 可能无法连接到指定的套接字connection
。我想知道是否有可能首先让 Vue 尝试连接到一个套接字(也有一些重新连接尝试)但切换到另一个connection
值并在之后尝试使用该值作为后备?
先感谢您!
最终解决方案
const options = {
reconnection: true,
reconnectionAttempts: 2,
reconnectionDelay: 10,
reconnectionDelayMax: 1,
timeout: 300,
};
let connection = new SocketIO(`http://${process.env.ip}:4000`, options);
const instance = new VueSocketIO({
debug: true,
connection,
vuex: {
store,
actionPrefix: 'SOCKET_',
},
options,
});
const options2 = {
reconnection: true,
reconnectionAttempts: 4,
};
connection.on('reconnect_failed', () => {
connection = new SocketIO(`http://${process.env.fallback}:4000`, options2);
instance.listener.io = connection;
instance.listener.register();
Vue.prototype.$socket = connection;
});