我希望将MQTT数据存储在MySQL数据库中,并希望存储客户端id、主题和消息内容。
对于某些设备,我无法控制主题或消息语法,因此无法将客户端id附加到消息或在主题中添加客户端id。
有可能这样做吗?
也许发布的消息可以自动创建具有客户端id的主题?
我看到mosquito在server.log中记录没有内容的客户端id,在客户端中记录没有客户端id的内容。。。有可能把这些联系起来吗?
或者可能已经有一个MQTT代理可以做到这一点了?
如果有人能给我一些建议,那就太好了。
您的要求不在规范范围内(发送给订阅者的消息中不包括客户端标识符,它只"向服务器标识客户端"(。因此,如果一个经纪人支持这一点,我会感到惊讶;然而,对于允许挂接发布流的代理程序(例如verne(,将您想要的信息转储到数据库应该相对容易(或者,如果QOS+1,您可能能够挂接存储代码(。
如果您想将信息(客户端ID(作为消息的一部分传递,那么您可能需要研究使用MQTT v5进行传递。v5包括对属性的支持,该属性提供了一种在不接触发布负载的情况下向消息添加额外数据的方法。