我尝试在一个nodejs进程中即做web服务监听8888口 又做websocket服务监听9999口 但是貌似只有先监听的那个服务会起来 是不是nodejs中一个进程只能监听一个端口
//web server
var server = http.createServer(function(req, res) {});
server.listen(8888, function() {
console.log('server running')
});
//websocket server
var server_for_socket = http.createServer(function(req, res) {
res.writeHead(200, {'Content-Type':'text/plain'});
res.end('i am websocket server');
});
server_for_socket.listen(9999, function() {
console.log('websocket start listening at port 9999')
});
不会的。
首先node是单线程的,但是并不代表只能监听某一个端口,因为他是基于事件模型的。eventHandler能保证它高效的运行。
以后最好贴一下你的错误堆栈,这样回答者能比较准确的知道哪儿错了。给你贴一段代码,你可以参考下:
来源:http://stackoverflow.com/questions/19296797/running-node-js-http-server-on-multiple-ports