使用process.send发送消息时的第二个参数

时间:2016-05-10 05:02:27

标签: node.js ipc

main.js

let child = require('child_process').fork('./child.js');

child.on('message', function () {
    console.log('message', arguments)
});

child.js

process.send({ ... });

似乎使用两个参数调用处理程序:

  

{'0':{...},'1':undefined}

我指望message监听器中的参数长度,所以参数的确切数量很重要。

第二个参数是什么(undefined)?是否在所有Node.js版本中都无条件地存在?

1 个答案:

答案 0 :(得分:1)

fine manual州:

  

事件:'消息'

     

message <Object>已解析的JSON对象或原始值。

     

sendHandle <Handle> net.Socketnet.Server个对象,或未定义。

如果您在同一页面上搜索 sendHandle ,则最终会here,具体为:

  

可以传递给sendHandle的可选child.send()参数用于将TCP服务器或套接字对象传递给子进程。子进程将接收该对象作为传递给process.on('message')事件上注册的回调函数的第二个参数。

但是,在您的情况下,您将从另一个方向发送消息,从子节点到服务器,在这种情况下发送句柄没有意义。因此,我的猜测是,在这种情况下,第二个参数总是undefined(但仍会存在)。