2011-07-27 9 views
6

소켓과의 새로운 연결에서 함수 호출을 수행하는 서버 측에 다음 코드가 있습니다.socket.io 루프 밖에서 브로드 캐스팅하는 방법

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

io.sockets.on('connection', function (socket) { 
    socket.broadcast.emit('user connected'); 
}); 

이제 나머지 요청을 받고 다른 모든 소켓에서 브로드 캐스트하려는 다른 모듈이 있습니다. 어떻게 할 수 있습니까?

소켓없이 브로드 캐스트를 사용할 수있는 방법이 있습니까? 이상과 같이

io.broadcast.emit('user connected'); 

편집

같은?

io.sockets.broadcast.to('m1').emit('user message', 'from', 'msg'); 

답변

7

예, 실제로! 그냥 io.sockets에서 호출하십시오.

io.sockets.emit('user connected') 

이 그 broadcast가 방송에서 자신을 제외하는 추가 단계를 취 제외 broadcast는 않습니다 정확히 무엇을 꽤 많이 있습니다.

편집 :

방에 범위를

, 당신이 지정한처럼 이렇게 : 나는 방송이 필요합니다 broadcast.to ('M1')를 사용하는 것을 시도하고있다

io.sockets.in('m1').emit('user message', 'from', 'msg'); 
+0

을한다 방송에 액세스 할 수있는 방법이 있습니까? – mamu

+1

일치하도록 게시물을 업데이트했습니다. "브로드 캐스트"자체는 단순히 현재 소켓에 플래그를 설정하기 때문에 액세스 할 글로벌 "브로드 캐스트"객체가 없습니다. 네임 스페이스에있는 메소드를 사용해야합니다. –

관련 문제