多个socket.io进程共享同一个端口?

Mar*_*mer 3 scalability node.js socket.io

我尝试扩展我的socket.io应用程序并尝试在我的服务器上运行多个进程.

我使用redis存储而不是内存存储,如下所述:https://github.com/LearnBoost/Socket.IO/wiki/Configuring-Socket.IO

我的服务器侦听端口8090:var io = require('/ usr/local/lib/node_modules/socket.io').listen(8090);

当我启动第二个进程时,我得到一个正在使用的地址错误:warn - 出现错误:错误:听EADDRINUSE

处理这个问题的最佳方法是什么?每个进程的端口和负载均衡器来区分它们?

或者有更好的解决方案吗?

Tim*_*ple 6

为此,我使用node-http-proxy,并根据请求的URL将流量路由到内部端口.下面是我用于路由请求的非常简单的示例.

var httpProxy = require('http-proxy');

var httpOptions = {
    router: {
        'domain1.com/foo': 'localhost:3001',
        'domain1.com/bar': 'localhost:3002',
        'domain2.com/baz': 'localhost:3003',
    } 
};

var httpServer = httpProxy.createServer(httpOptions);
httpServer.listen(80);
Run Code Online (Sandbox Code Playgroud)

有关我的特定设置的更多详细信息可以在这个问题上找到:如何在node-http-proxy旁边使用vhost?