使用 process.send 发送消息时的第二个参数
Posted
技术标签:
【中文标题】使用 process.send 发送消息时的第二个参数【英文标题】:Second argument when emitting messages with process.send 【发布时间】:2016-05-10 05:02:27 【问题描述】:main.js
let child = require('child_process').fork('./child.js');
child.on('message', function ()
console.log('message', arguments)
);
child.js
process.send( ... );
似乎使用两个参数调用处理程序:
'0': ... , '1': 未定义
我指望message
监听器中的参数长度,所以参数的确切数量很重要。
第二个参数 (undefined
) 是什么?是否在所有 Node.js 版本中都无条件存在?
【问题讨论】:
nodejs.org/api/child_process.html#child_process_event_message @robertklep - 这是一个答案 - 你应该这样发布。 【参考方案1】:fine manual 声明:
事件:“消息”
•
message
<Object>
已解析的 JSON 对象或原始值。•
sendHandle
<Handle>
net.Socket
或net.Server
对象,或未定义。
如果您在同一页面上搜索 sendHandle,您最终会得到here,具体而言:
可以传递给
child.send()
的可选sendHandle
参数用于将TCP 服务器或套接字对象传递给子进程。子进程将接收对象作为第二个参数传递给在process.on('message')
事件上注册的回调函数。
但是,在您的情况下,您是从另一个方向发送消息,从子节点到服务器,在这种情况下发送句柄没有意义。因此,我的猜测是,在这种情况下,第二个参数将始终为undefined
(但仍会存在)。
【讨论】:
以上是关于使用 process.send 发送消息时的第二个参数的主要内容,如果未能解决你的问题,请参考以下文章
基于托管 SIP 应用程序 API 构建的第二个 Lync 应用程序未接收 SIP 消息