2013-07-16 25 views
7

私はhttpサーバーとforked子プロセスを持っています。私は、親が要求を受け取り、worker.sendを使用してフォークされたプロセスに渡すことを望みます。作業者は同じ応答オブジェクトを使用して応答を処理して要求者に送り返すことができなければなりません。Node.js子プロセスへの応答オブジェクトハンドルのハンドルを渡します

私はworker.sendの2番目のパラメータに応答オブジェクトを送信しようとしたが、それは誤りに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ファイルにチェックし、それはのいくつかに属していない場合、それは言います型、それはエラーをスローされます。

フォークされた子に応答オブジェクトを送信できる他のオプションがあるかどうかを知りたいと思います。

はEDIT:

さて、ここで私が見つけたものだ、私は、次の

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

を変更し、フォークプロセスは、それを取得ハンドラにwriteを呼び出すことができます。

正しいですか?この方法で使用できますか?または何らかのまばらな条件の下で何らかの意味があるでしょうか?

+1

こんにちは@Салман。この問題の解決策はありましたか?私は同じ問題を抱えている。 – Sid

+0

いいえ、私はこのアプローチでは解決できないと思いました。共有できる特定のユースケースがある場合は、解決策を見つけることができます。 –

+0

同じ問題があります –

答えて

0

worker.sendは、net.createServer関数からの要求のみを受け取ります。 httpの代わりに 'net'パッケージを使ってみてください。これは私の問題を解決しました

関連する問題