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

时间:2013-07-16 11:17:07

标签: javascript node.js http child-process

我有一个http服务器和一个分叉的子进程。我希望父级接收请求并使用worker.send传递给分叉进程。并且worker应该能够使用相同的响应对象处理并将响应发送回请求者。

我尝试在worker.send的第二个参数中发送响应对象,但它提供错误This handle type can't be sent

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 个答案:

答案 0 :(得分:0)

worker.send仅接收来自net.createServer函数的请求。使用'net'包而不是http更好地尝试。这解决了我的问题