2017-09-05 90 views
0
io.on('connection', socket => { }) 

这段代码给你实例'套接字',但我目前需要在我的项目中的其他地方使用该实例。如何获取socket.io的活动实例?

有没有一种方式通过它运行的端口或类似的端口来访问它?

我试图改变与套接字Vuex(Vue.js)中的状态,我将它放入REST Api中的处理程序。

+0

也许你可以将socket.io实例放入vuex中,以便它可以被所有实例访问。 – Reiner

回答

2

正如Reiner在他的评论中所说的,你可以尝试将套接字保存到vuex本身,以便从你的所有项目中访问它。例如:

new Vue({ 
    ... 
    created() { 
     io.on('connection', socket => { 
      this.$store.dispatch('SET_SOCKET', { 
       getInstance() { 
        return socket 
       } 
      }) 
     }) 
    } 
}) 

不要忘了定义'SET_SOCKET'行为和突变。

然后,您将能够使用this.$store.state.socket.getInstance()

我用getInstance(),因为如果我没有记错的插座变异本身随着时间的推移,以及VueX不喜欢访问它。