我有一个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
。
这是对的吗?我可以这样使用吗?或者在一些严厉的条件下是否会产生任何影响?
答案 0 :(得分:0)
worker.send仅接收来自net.createServer函数的请求。使用'net'包而不是http更好地尝试。这解决了我的问题