gpt4 book ai didi

node.js - 父进程如何将套接字/服务器对象发送到 Node.js 中的子进程?

转载 作者:搜寻专家 更新时间:2023-10-31 22:29:28 26 4
gpt4 key购买 nike

考虑:

// Parent

var child = require('child_process').fork('child.js');

// Open up the server object and send the handle.
var server = require('net').createServer();
server.on('connection', function (socket) {
socket.end('handled by parent');
});
server.listen(1337, function() {
child.send('server', server);
});

//Child
process.on('message', function(m, server) {
if (m === 'server') {
server.on('connection', function (socket) {
socket.end('handled by child');
});
}
});

如上例所示,父进程将服务器对象发送给子进程,这样即使是子进程也可以处理一些客户端连接请求。

在Node.js中是如何实现的?

最佳答案

这里是 what node does when process.send is called with a handle argument .

阅读之后,the handleConversion function读起来也很有趣。

我还没有完全理解,但我认为本质上套接字/服务器的状态是序列化的,并使用 IPC 在主服务器/工作服务器之间传递。也许传递的状态足以让每个进程将自己绑定(bind)到套接字?或者,也许 parent 正在保留可以处理任何给定套接字的 child 的注册表,因此一旦某个套接字有新连接进入,它就会发送给为其注册的 child 。这部分我不太确定。

关于node.js - 父进程如何将套接字/服务器对象发送到 Node.js 中的子进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13603900/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com