我有一个基本的MQTT问题:如果我有一个无法配置自己但匿名发布或订阅的代理,发布者是否可以在该主题上定义允许的客户?
例如使用mosquitto可以定义ACL文件,但只能在代理站点上定义。
如果不可能,用python加密已发布数据的最佳方法是什么?
答案 0 :(得分:0)
不,MQTT发布者绝对不了解或控制哪些客户端可以订阅它发布消息的主题。
MQTT是一种发布/订阅协议,其主要宗旨之一是使发布者与订阅者完全脱钩。发布消息时,订阅者的数量可以是0到n个订阅者。
如@GDagger的注释中所述,控制的唯一选项是您可以加密有效负载,因此只有授权的订户才能解密它。由于MQTT有效负载只是字节的集合,因此您可以发送所需的任何内容(大小限制为256mb)
另一方面,代理具有完全控制权,它可以使用ACL来决定哪些客户端可以发布或订阅哪些主题。