所有客户端订阅topic=A,broker在publish时候怎么指定发到某一个客户端

由于之前用的是其他mqtt插件,所有的客户端都是订阅了topic=A,但是现在要换成emq后,emq broker在publish消息后,全部客户端都收到消息了,这个场景,各位大佬有解决方法或者思路吗?

你好,建议使用不同的主题进行区分。

MQTT 协议是基于主题的进行的消息转发,只要订阅了这个相同主题的,从协议上来说是应该每个订阅者都要收到的才对

1 个赞

这种方式我理解,但是现在我们场景是从另一个mqtt插件换到emqx插件,但是设备的订阅topic啥的不能改,只能云端做兼容,但是我没找到好的方案,烦请指教一二

这种情况就只能用 erlang 写一个 emqx 的插件了,插件 | EMQX文档

去实现 client.subscribe 的钩子,把客户端发起订阅的主题,在入到 emqx 这边时给他改成 原主题/{clientid} 这种形式