2016-06-28 4 views
1

언제든지 필요할 때라도 한 번 실행되도록 socket.io 연결을 모듈화하고 싶습니다. 어떻게 수출합니까?express.js (node.js)에서 혼동이 필요하고 반출합니다.

var server = require("http").Server(express); 
var io = require("socket.io")(server); 
server.listen(5000); 
io.on('connection', function(client) { 
    client.on('order_'+userId, function(data) { 
     io.emit('order_'+userId,data); // emit to cilent of dashboard 
    }); 
}); 

어떻게 작동합니까? 나는 어떤 변수에 할당 할 필요가 없습니다 내 경우에는

var moment = require('moment'); 

또는 언젠가

var LocalStorage = require('node-localstorage').LocalStorage; 

처럼 서로 다른 패턴을보고, 그것을 즉시 실행하려는거야. 가능한?

+0

[Node.js module.exports의 용도는 무엇이며 어떻게 사용합니까?] (http://stackoverflow.com/questions/5311334/what-is-the-purpose-of-node) -js-module-exports-and-how-do-use-it) – docksteaderluke

답변

0

require()은 모듈이 내 보낸 내용을 반환합니다. Object, function 또는 String 또는 Number 일 수 있습니다. 보통 Object 또는 function입니다. 예를 들어, var server = require('http')은 코드 샘플의 첫 번째 줄에서 호출하는 Server() 메서드를 가진 Object을 반환합니다. 정말로 패키지 제작자의 몫입니다.

코드가 괜찮은 것 같습니다. socket.io은 나중에 참조하기 때문에 변수에 할당됩니다. io.on('connection', ...)은 효과적으로 한 번만 호출됩니다. 그러면 연결을 기다리고 연결 이벤트가 발생할 때마다 function(client) {...}이 호출됩니다. 이 구현에는 큰 성능 문제가 없습니다.