如何复制Node.js / Socket.io服务器

时间:2017-02-05 00:59:59

标签: javascript node.js socket.io chatroom

我是Node.js和Socket.io的新手,对于我目前的网络开发项目,我设置了一个Socket.io聊天室,我需要能够做很多很多(可能的)数百个单独的实例。有没有办法做到这一点?

1 个答案:

答案 0 :(得分:0)

在节点中生成子进程非常简单,特别是如果它是另一个节点进程。

child_process.fork是可用选项之一



import cp = require('child_process');

var proc = cp.fork('path/to/module');
proc.on('error', function(err) {
  console.error('The process failed to start');
  console.error(err);
});

proc.on('exit', function(code, signal) {
  console.log('The process was terminated by ' + signal + ' and exited with code ' + code);
});




您可能还希望查看cluster,它使用child_process.fork来生成子项,但还具有构建在其上的其他功能,以便在进程之间自动共享资源,例如服务器句柄。

虽然我不确切地知道您打算如何使用数百名儿童,但我建议将儿童限制在机器上可用的核心数量上。产卵数百名儿童可能会影响表现。您应该依赖节点的异步性来处理可伸缩性,除了平衡可用CPU之间的处理负载之外,生成工作者并没有多大帮助。