Я получаю сообщение об ошибке при использовании process.send в дочернем процессе, как в:Узел: child_process.js: 427 throw new TypeError («Этот тип дескриптора не может быть отправлен»);
process.send(someObject, function() {
....
});
Дочерний процесс создается как в:
var child = require('child_process');
var forkedProcess = child.fork(nodeScriptFile);
Ошибка:
child_process.js:427
throw new TypeError("This handle type can't be sent");
^
TypeError: This handle type can't be sent
Программы отлично работают на одном сервере. Я попытался создать отдельный производственный сервер, скопировав все файлы, и я начал получать эту ошибку. Конечно, программы намного больше, а затем код, показанный выше. Я чувствую, что упустил какую-то установку или что-то тривиальное. Я посмотрел на ребенка-process.js код и ошибка вызывается из этого кода:
if (handle instanceof net.Socket) {
message.type = 'net.Socket';
} else if (handle instanceof net.Server) {
message.type = 'net.Server';
} else if (handle instanceof process.binding('tcp_wrap').TCP ||
handle instanceof process.binding('pipe_wrap').Pipe) {
message.type = 'net.Native';
} else if (handle instanceof dgram.Socket) {
message.type = 'dgram.Socket';
} else if (handle instanceof process.binding('udp_wrap').UDP) {
message.type = 'dgram.Native';
} else {
throw new TypeError("This handle type can't be sent");
}
потратили много времени ... Пожалуйста, помогите !!!
Вы используете функцию обратного вызова для 'process.send()'? Я уверен, что ошибка вызвана этим. – robertklep
@robertklep Да, я использую функцию обратного вызова для обработки отправки. Однако я делал это на другом сервере. После прочтения вашего комментария я проверил с версиями Nodejs. Тот, на котором он работает, - это v4.4.3, и на котором он не работал, был v. .10 или что-то в этом роде! Я обновился до версии 4.4.3, и он отлично работает. Если вы опубликуете свой комментарий в качестве ответа, я буду рад принять его, поскольку я подозреваю, что в старой версии не было обратного вызова process.send, и поэтому он интерпретировал обратный вызов как дескриптор? Просьба уточнить в ответе, который вы публикуете. – Sam