在你认为cluster
不是这个问题的接受答案之前。
问题很简单,如何将http.createServer()
发送给多个孩子?
我遇到的问题是我有一个主进程,仅用于监视和管理目的,我希望我的孩子能够处理快速应用程序和WebSocket系统。
我无法使用cluster
,因为这意味着应用程序中的更改太多,所以我正在寻找替代方案。
实际父母:
...
var net = require("http");
var server = net.createServer();
server.listen(C.API.LISTEN_PORT, function () {
console.log('master is listenning');
console.log(server);
supervisor.on("childSpawned", function () {
console.log('child spawned');
supervisor.broadcast('server', {}, server); // sugar for process.send('server', server);
});
tracer.info(process.title + "(" + ip.address() + ")" + " says hello on port:", C.API.LISTEN_PORT);
});
实际孩子:
worker.once('server', function (data) {
data.server.on('connection', function (res) {
console.log('got a connection on ' + process.pid);
});
});
这样可以正常工作,但仅适用于1个孩子,并且父母和孩子可以随机处理连接。如果我增加了更多的工人,那么有些人会被处理掉,有些人会被处理掉。
什么工作正常是让服务器在父服务器上并在每次连接后发送传入套接字但是 express
和ws不能处理由初始化的事实一个socket
所以我认为,唯一的解决方案是向他们发送一个server
但是如何使用一个以上的孩子(不使用群集)?