2012-11-10 4 views
1

안녕하세요. 필요에 따라 동적 네임 스페이스를 사용하려고합니다. 그것은 내가 어떤 이유로 중복 이상의 클라이언트를 얻을 것을 제외하고 일하고 Socket.io 네임 스페이스에 클라이언트가 중복되어 있습니다.

서버 측 :

io.of("/" + group).on("connection", function(socket_group) { 
       socket_group.groupId = group; 
       socket_group.on("infos", function(){ 
        console.log("on the group !"); 
       }) 

       socket_group.on('list', function() { 
        Urls.find({'group' : '...'}).sort({ '_id' : -1 }).limit(10).exec(function(err, data){ 
         socket_group.emit('links', data); 
        }); 
       }) 
       [...] 
       }) 

클라이언트 측 : 하나 개의 명령이 전송되는 클라이언트 측하지만 서버에서

socket.emit('list', { ... }); 

항상 2 개 이상의 응답으로 응답합니다. 내 앱을 닫거나 열 때마다 응답이 증가합니다.

알아 줘서 고마워.

답변

2

이것은 올바른 동작 일 수 있습니다. 다른 환경에서 이벤트 처리기를 스택하는 경우와 같습니다. 네임 스페이스에 함수의 첨부 파일을 한 번만 실행하도록하려면 먼저 그 존재를 확인하십시오 (또는 필요에 따라 한 번만 실행되는 프로그램에서이 어딘가를 정의하십시오).

시험해보십시오. (!io.namespaces["/" + group])

+0

대단히 감사합니다. 나는 중복 이벤트 핸들러 스택을 생성했다. – Servernumber

관련 문제