2012-08-28 3 views
1

편집 :이 질문은 EventMachine의 부적절한 지식으로 인해 질문되었습니다.NodeJS : 다시 시작하지 않고 Socket.IO 서버에 채널 추가

Socket.IO 인터페이스를 사용하면 "채널"로 연결을 다중화 할 수 있습니다. 어떻게하면 Socket.IO 서버를 시작할 수 있습니까?하지만 서버를 중지하거나 시작할 필요없이 채널을 추가 할 수 있습니까?

var io = require('socket.io').listen(80); 

var chat = io 
    .of('/chat') 
    .on('connection', function (socket) { 
    socket.emit('a message', { 
     that: 'only' 
     , '/chat': 'will get' 
    }); 
    chat.emit('a message', { 
     everyone: 'in' 
     , '/chat': 'will get' 
    }); 
    }); 

var news = io 
    .of('/news') 
    .on('connection', function (socket) { 
    socket.emit('item', { news: 'item' }); 
    }); 

Socket.IO에서이 코드는 예

chatnews라는 두 개의 채널을 생성, 서버를 시작 나타낸다. chat으로 서버를 시작했지만 chat에 아무런 영향도없이 news을 추가하고 싶다면 어떻게해야합니까? 채널을 어떻게 추가합니까?

+0

채팅으로 서버를 시작하려는 이유의 예를 들려 줄 수 있습니까? 실제 사용 사례를 더 잘 이해할 필요가 있습니다. 그렇지 않으면 Vadim은 정확하다.'io.of ('channel')'을 호출하여 다른 채널을 만들면 다시 시작할 필요가 없다. –

+0

Socket.IO 서버를 시작하고 스크립트가있는 프로세스의 인스턴스를 추가합니다. 각 인스턴스는 프로세스가 생성 될 때 생성되는 채널에 바인딩됩니다. 그렇지 않으면 기존의 Socket.IO 서버에 채널을 추가하는 방법 (다른 스크립트 에서처럼)을 설명하십시오. – hexacyanide

+0

그래서 여러 노드 인스턴스를 실행하고 있습니까? 나는 당신이 "스크립트로 프로세스의 인스턴스를 추가"하는 것이 무엇을 의미하는지 확신 할 수 없다. 다른 파일에 여러 채널을 설정하려고합니까? –

답변

1

네임 스페이스를 추가하기 위해 서버를 다시 시작할 필요는 없습니다. 새로운 네임 스페이스를 사용하기 만하면됩니다. 귀하의 예에서 서버를 시작한 후에 두 네임 스페이스 (chatnews)가 생성되었습니다.

+0

새로운 네임 스페이스에 대한 사용자 입력을 허용 한 다음 사용 하시겠습니까? – film42

관련 문제