我是Node.js和Socket.io的新手,对于我目前的网络开发项目,我设置了一个Socket.io聊天室,我需要能够做很多很多(可能的)数百个单独的实例。有没有办法做到这一点?
答案 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之间的处理负载之外,生成工作者并没有多大帮助。