我有一个基本的MQTT问题:如果我的代理不能自己配置,但可以匿名发布或订阅,那么发布者是否可以定义该主题上允许的客户端?
例如,对于mosquito,我可以定义ACL文件,但只能在经纪人网站上定义。
如果不可能,用python加密已发布数据的最佳方法是什么?
不,MQTT发布者完全不知道或控制哪些客户端可以订阅它发布消息的主题。
MQTT是一个发布/子协议,它的关键原则之一是将发布者与订阅者完全解耦。发布消息时,可以是0到n个订阅者。
正如@GDagger在评论中提到的,唯一的控制选项是,你可以加密有效载荷,这样只有授权的订阅者才能解密它。由于MQTT有效载荷只是字节的集合,你可以发送任何你想要的东西(在256mb大小限制内(
另一方面,代理具有完全的控制权,它可以使用ACL来决定哪些客户端可以发布或订阅哪些主题。