2011-08-11 11 views
2

node.js 프로젝트에서 Socket.IO를 활용하고 있으며 범위 지정 문제와 관련된 문제가 발생하고 있습니다. 여기에 내가 뭘하려고 오전입니다 :Socket.IO 범위 지정 문제 (Node.JS)

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

// client joins the socket server 
io.sockets.on('connection', function(client) { 
    client.on('X.Session.join', function(session_id, client) { 
     session_manager.joinSession(session_id, function(err, session) { 
      // do whatever 
     }); 
    }); 
    // BRING IN MORE LISTENERS/EMITTERS? 
    require('someModuleIBuild'); 
}); 

당신은 내가 기본적으로 초기 연결을 설정 관리 클래스를 통해 세션에 참여하고 볼 수있는 다음과 (I 누가 방출 알 수 있도록 할 세션) 나는 동적으로 소켓 연결을 통해 방출하고 청취 할 몇 가지 사용자 지정 항목을 가져 오려고합니다.

그렇다면이 현재 연결을 내 맞춤 모듈의 범위 내에서 어떻게 참조 할 수 있습니까? 필자가 본 모든 예제는 하나의 파일에 모든 "on"및 "emit"기능을 가지고 있습니다.이 기능은 꽤 빨리 제어 할 수없는 것처럼 보입니다.

나는이 생각을 지나치게 복잡하게 생각하고있다. (이것은 내 첫번째 node.js 프로젝트, 첫 번째 소켓 기반 프로젝트, 첫 번째 대부분 자바 스크립트 프로젝트이다.) 그러나 어떤 도움을 주시면 감사하겠습니다.

+0

처럼 필요합니까 다음 모듈

module.exports = function(client) { client.on("whatever", function() { }); client.on("whenever", function (data) { }); }; 

client을 통과 할 수 있습니다. 내가 현재하고있는 솔루션은 내 사용자 정의 모듈에서 이벤트를 내보내는 중입니다. 그런 다음 socket.io에서 이러한 이벤트를 수신합니다.하지만 최선의 방법인지는 확실하지 않습니다. \ –

답변

1

이처럼 모듈을 생성하고 당신은 내가 어제 같은 문제로 실행이

require('someModuleIBuild')(client);