2017-09-05 92 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不喜歡訪問它。