노드가 비동기이기 때문에 여러 엔드 포인트를 동시에 청취하는 데 문제가 없습니다. 이 프로그램의 구조는 기본적으로 두 개의 서버 (HTTP/Express/Socket/...)를 별도로 구성하고 두 서버 모두에서 listen()을 호출하는 것입니다. 신속하고 더러운 예로서;
var http = require('http');
var net = require('net');
var repl = require('repl');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World!\n');
}).listen(8081);
net.createServer(function (socket) {
repl.start({
prompt: "node> ", input: socket, output: socket
}).on('exit', function() {
socket.end();
});
}).listen(8082);
... 포트에서 수신 대기합니다 8081/HTTP 메시지, 그리고 당신은 자연적 방법/구성을 다시 사용하도록 선택할 수 8082
에 텔넷을 통해 REPL,하지만 당신의 선택이 아니라 아무것도의와 노드에 의해 시행됩니다.
답장을 보내 주셔서 감사합니다. 이것은 웹 및 API에 유용합니다. 하지만 http (?)를 듣지 않을 것이기 때문에 명령 행 인터페이스를 어떻게 찾습니까? Commander.js, REPL 등을 사용하여 기존 앱과 상호 작용하는 방법은 무엇입니까? – silverfighter
@silverfighter 다른 HTTP 포트 대신 포트 8082에서 REPL로 업데이트되었습니다. –