我正在尝试使用自定义有效负载来构建mqtt数据包,并且发现了该节点库https://github.com/mqttjs/mqtt-packet,因为它似乎给了我创建测试自定义有效负载的自由。但是,在创建数据包之后,我看不到如何将其发送到MQTT代理。那么,我是否需要一个MQTT客户端来接受使用mqtt-packet创建的数据包? 如果您还有其他建议来创建和发送自定义mqtt数据包,将不胜感激。
答案 0 :(得分:1)
MQTT消息有效负载只是字节数组,您可以在其中发送所需的任何内容。
找到的软件包将在MQTT客户端实现中使用,以构建实现MQTT协议所需的实际低级数据包。
您应该只使用普通的MQTT客户端,例如MQTT.js库。
如果要发送带有二进制有效载荷的消息,则只需将Buffer传递给publish
方法。来自MQTT.js docs:
mqtt.Client#publish(主题,消息,[选项],[回调])
将消息发布到主题
topic 是要发布到的主题,字符串
message 是要发布的消息,缓冲区或字符串
选项是用于发布的选项,包括:
- qos QoS级别,数字,默认0
- 保留保留标志,布尔值,默认为false
dup标记为重复标记,布尔值,默认为false
回调-函数(err),在QoS处理完成时触发, 或如果QoS 0,则在下一个刻度。如果客户端为 断开连接。