NodeJS / Socket.io如何使用多个端口(侦听器)

时间:2019-01-02 19:37:58

标签: node.js sockets socket.io

我想为NodeJS运行更多端口。 每当有更多用户加入我的网站并发送邮件时,它就会变得更加缓慢。 我想避免这种情况。但是如何?

我认为一个好方法是使用nginx上游一些节点

upstream nodes {
    ip_hash;

    server localhost:2055;
    server localhost:2056;
    server localhost:2057;
}

比我想开始新的听众

server.listen(2055, function(){
     console.log('Express listening on port', this.address().port);
});
server.listen(2056, function(){
     console.log('Express listening on port', this.address().port);
});
server.listen(2057, function(){
    console.log('Express listening on port', this.address().port);
});

但是由于任何原因,只有2055正在启动并登录控制台:/

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您应该像这样为每个端口创建一个不同的服务器对象,因为每个服务器对象只能侦听一个端口。

ports = [2055,2056,2057];
    ports.forEach(function(port) {
    s = http.createServer(reqHandler);
    s.listen(port);
    servers.push(s);
});