Начать подключение через сокет после некоторого действия vuejs
Мне нужно работать с сокетом IO. Я делаю код из официальных документов
import VueSocketio from 'vue-socket.io'
import socketio from 'socket.io-client'
Vue.use(VueSocketio, socketio('http://b5870557.ngrok.io'), store)
Вставьте этот код в мой vuex main.js. Но он устанавливает соединение, когда я открываю свою первую страницу. Но я должен открыть соединение после того, как я скачаю страницу или нажму кнопку. Но если я напишу действие
setSocketConnection({commit}, url) {
Vue.use(VueSocketio, url)
commit('SOCKET_CONNECT')
}
и назовите это нужным местом
created() {
this.$store.dispatch('setSocketConnection', 'MySocketUrl')
}
я не могу получить какие-либо сообщения, я имею в виду, что слушатель событий не работает
sockets: {
someEmit: function(data) {
console.log(data)
}
}
1 ответ
Если вы используете vue-router, вы можете сделать следующее:
{
path: '/BB',
name: 'BB',
component: BB,
beforeEnter (to, from, next) {
if (!Vue.prototype.$socket) {
Vue.use(VueSocketio, WS_URL)
}
next()
}
}
Источник: Как отключить vue-socket.io в некоторых компонентах vue-router