9

httpサーバーとフォークされた子プロセスがあります。親がリクエストを受け取り、 を使用してフォークされたプロセスに渡すようにしますworker.send。ワーカーは、同じ応答オブジェクトを使用して応答を処理し、リクエスターに送り返すことができる必要があります。

の2番目のパラメーターで応答オブジェクトを送信しようとしました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、取得したハンドラーを呼び出すことができます。

それが正しいか?このまま使えますか?または、何とか何とか条件の下で何らかの影響がありますか?

4

1 に答える 1

0

worker.send は、net.createServer 関数からのリクエストのみを受け取ります。http の代わりに「net」パッケージを使用してみてください。これで私の問題は解決しました

于 2016-07-25T09:13:57.517 に答える