2017-12-25 18 views
1

나는 net.Server을 사용하는 서버를 가지고 있으며 http.Serverexpress()을 사용하는 서버가 2 개 있습니다. 그리고 내가 s_https_exp에 대한 핸들러로 s_net을 사용하여이net.server를 사용하여 http를 처리하고 모두를 즉시 표현하십시오.

... 
var s_net = net.createServer(); 
var s_http = http.createServer(); 
var s_exp = express(); 
s_net.listen(opt.port); 
s_http.listen(s_net); 
s_exp.listen(s_net); 
console.log(`listening on ${opt.port}`); 

것 같습니다. 그리고, 나는, 그것은 단지 s_exp 요청에서 응답 않는 경우 난 그냥

H:\NodeJS\web3>node index.js 
listening on 80 
request to s_exp 

를 얻을

s_net.on("connection", function(c){ 
    console.log("incoming connection to s_net") 
}) 
s_http.on("request", function(req, res){ 
    console.log("request to s_http"); 
}); 
s_exp.all("/*", function(req, res, next){ 
    console.log("request to s_exp"); 
    res.send("<h1>Hello World!</h1>"); 
}); 

하지만 콘솔

을한다.
어떻게 모두들을 수 있습니까?
incoming connection to s_net, request to s_httprequest to s_exp
참조 : 당신은 Express를 사용하여 서버를 만들 때
https://nodejs.org/dist/latest-v9.x/docs/api/net.html#net_server_listen_handle_backlog_callback

+1

무엇이 요점입니까? Express 서버를 하나만 만들고 원하는 이벤트 리스너를 적용하십시오. 커버 아래에 http 서버가 있으며이 서버는 커버 아래에있는 TCP 서버이기도합니다. – jfriend00

+0

무엇이 요점입니까? –

+0

나는 그것을 위해서 ... 나중에. 나는 모른다. 나는 그들을 모두 모아두고 싶다. 방금 쓸모없는 것을 만들었습니다. 하지만 어쩌면, 나는 변화없이 새로운 요청을 원한다. 나는 그것을 http에 링크하고 함께 표현하기를 원한다. –

답변

1

, 당신은 이미 HTTP 서버가 있습니다. 들어오는 요청에 대한 요청 처리기로 Express가있는 것은 단지 http 서버입니다. 그리고 http 서버는 net.Server에서 상속되므로 이미 TCP/IP 서버입니다. 하나의 특급 서버를 만든 다음 다양한 서버 이벤트에 대한 이벤트 리스너 설정을 포함하여 Express, http 또는 net.Server 기능을 사용할 수 있습니다.

따라서 일반 Express 서버를 작성하면 이미 3 개가 모두 함께 있습니다. 별도의 서버 세 개를 만든 다음 어떻게 든 결합하려고 할 필요는 없습니다.