将 MQTT 消息与 Publisher 的 clienID 连接
Posted
技术标签:
【中文标题】将 MQTT 消息与 Publisher 的 clienID 连接【英文标题】:Connect MQTT Message with clienID of Publisher 【发布时间】:2021-06-19 13:58:08 【问题描述】:我想将 MQTT 数据存储在 mysql 数据库中,并希望存储客户端 ID、主题和消息内容。
对于某些设备,我无法控制主题或消息语法,因此无法将客户端 ID 附加到消息或在主题中添加客户端 ID。
有可能这样做吗?
也许发布的消息可以自动创建带有客户端 ID 的主题?
我看到 mosquitto 在 server.log 中记录了没有内容的客户端 ID,在客户端记录了没有客户端 ID 的内容......是否可以链接这些?
或者也许已经有一个 MQTT 代理可以做到这一点?
如果有人能在这方面给我一些建议,那就太好了。
【问题讨论】:
【参考方案1】:您的要求超出了规范(Client Identifier 不包含在传递给订阅者的消息中,它仅“将客户端识别到服务器”)。因此,如果经纪人支持这一点,我会感到惊讶;但是,对于允许您连接到发布流程的代理(例如verne),将您想要的信息转储到数据库应该相对容易(或者,如果 QOS+1,您可以连接到存储代码)。
如果您想将信息(客户端 ID)作为消息的一部分传递,那么您可能需要考虑使用 MQTT v5 进行传递。 v5 包括对 properties 的支持,它提供了一种在消息中添加额外数据而无需触及发布负载的方法。
【讨论】:
以上是关于将 MQTT 消息与 Publisher 的 clienID 连接的主要内容,如果未能解决你的问题,请参考以下文章