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

이 스 니펫은 '소켓'인스턴스를 제공하지만 현재 프로젝트의 다른 인스턴스를 사용해야합니다.socket.io의 활성 인스턴스를 얻는 방법은 무엇입니까?

실행 중이거나 비슷한 포트를 통해 액세스하는 방법이 있습니까?

REST API의 핸들러에 넣은 소켓으로 Vuex (Vue.js)의 상태를 변경하려고합니다.

+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' 동작 및 변이를 정의하는 것을 잊지 마십시오.

그런 다음 내가 정확히 기억한다면 소켓이 시간이 지남에 따라 자신을 변이합니다, 그리고 VueX가 좋아하지 않기 때문에 내가 getInstance()을 사용 this.$store.state.socket.getInstance()

사용하여 액세스 할 수 있습니다.