一次注入多个有效载荷(节点红色)

问题描述 投票:0回答:1

我有个问题。我是节点红色的新手,我想一次注入许多不同主题的有效载荷。我想用第一个节点中的函数来做。它的功能如下:

msg.topic="ns=2;s=Target01.Nazwa.Nazwa[0];datatype=String"
msg.payload=global.get("nazwa")
return msg
msg.topic="ns=2;s=Target01.Nazwa.Nazwa[1];datatype=String"
msg.payload=global.get("nazwa2")
return msg
...
msg.topic="ns=2;s=Target01.Nazwa.Nazwa[9];datatype=String"
msg.payload=global.get("nazwa9")
return msg

enter image description here

但它不起作用。第二个节点正在工作,但总共有150多个块连接到OPC UA Client块。所以我的问题是:有没有人知道是否有办法注入具有不同主题的多个有效负载,有利于功能,而不是一个接一个地使用注入块?

node.js node-red
1个回答
2
投票

documentation解释了如何从状态节点发送多条消息。

使用当前的代码,只要它到达第一个return语句,Function节点就会停止进一步处理,因此只发送一条消息。

要从Function节点发送多条消息,您有两个选择。

  1. 返回要发送的消息对象数组。
  2. 为您要发送的每封邮件调用node.send(msg);

例如:

return [
 [
   { topic: "ns=2;s=Target01.Nazwa.Nazwa[0];datatype=String", payload: global.get("nazwa")},
   { topic: "ns=2;s=Target01.Nazwa.Nazwa[1];datatype=String", payload: global.get("nazwa2")},
   { topic: "ns=2;s=Target01.Nazwa.Nazwa[9];datatype=String", payload: global.get("nazwa9")}
  ]
]
© www.soinside.com 2019 - 2024. All rights reserved.