将Node.js响应对象的句柄传递给子进程

9
我有一个http服务器和一个派生的子进程。我希望父进程接收请求并使用worker.send将其传递给派生进程。工作者应该能够处理并使用相同的响应对象将响应发送回请求者。
我尝试在worker.send的第二个参数中发送响应对象,但它会出现错误此句柄类型无法发送
var child_process = require('child_process');

var worker = child_process.fork(filename);

http.createServer(function (req, res) {
    worker.send({ 'event': 'start' }, res); // send response object
}).listen(4000);

我查看了child_process.js文件,发现如果不属于某些类型,则会抛出错误。

我想知道是否有其他选项可以将响应对象发送到派生的子进程。

编辑:

好的,这是我找到的,我只需更改以下内容

// Instead of
// worker.send({ 'event': 'start' }, res);
worker.send({ 'event': 'start' }, res.socket);

分叉进程能够在其获得的处理程序上调用write

这个方法正确吗?我可以这样使用吗?或者在某些情况下会有什么影响吗?


1
嗨@Салман。你解决了这个问题吗?我也卡在同样的问题上了。 - Sid
不是,但我想我用另一种方法解决了它,而不是采用这种方法。如果您有特定的用例可以分享,您可能会找到解决方案。 - Salman
1个回答

0

worker.send 只接受来自 net.createServer 函数的请求。建议使用 'net' 包而不是 http。这解决了我的问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接