2013-07-16 2 views
7

У меня есть сервер http и раздвоенный дочерний процесс. Я хочу, чтобы родитель получал запросы и переходил на разветвленный процесс, используя worker.send. и работник должен иметь возможность обрабатывать и отправлять ответ обратно запрашивающему лицу с использованием одного и того же объекта ответа.Node.js передать дескриптор дескриптора объекта ответа дочернему процессу

Я пытался посылать объект ответа во втором параметре 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 файл, и он говорит, если он не принадлежит к какой-то из типы, это вызовет ошибку.

Я хочу знать, есть ли другие варианты, с помощью которых я могу отправить объект ответа раздвоенному ребенку.

EDIT:

Хорошо, вот что я нашел, я просто изменил следующий

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

И раздвоенный процесс может вызвать write на обработчик он получает.

Верно ли это? Могу ли я использовать его таким образом? или будут какие-либо последствия при некоторых условиях бла-бла?

+1

Hi @ Салман. Получили ли вы решение этой проблемы? Я застрял в той же проблеме. – Sid

+0

Нет, но я думаю, мне удалось решить его каким-то другим способом не с таким подходом. Если у вас есть конкретный вариант использования, который вы можете использовать, вы можете найти решение. –

+0

У меня такая же проблема –

ответ

0

Работник.send принимает запросы только от функции net.createServer. Попробуйте лучше с «net» вместо http. Это разрешило мою проблему

Смежные вопросы