2017-08-17 58 views
0

我有四輛卡車連接到一個mqtt經紀人,我有四個應用程序/設備。卡車發佈消息和應用程序訂閱這些消息如何限制用戶訪問發佈的消息

是否有任何方法來限制設備訪問卡車發佈的消息?換句話說,讓我們假設truck1發佈以下消息(truck1_msg1,truck1_msg2,truck1_msg)我希望App1能夠訂閱並收聽來自truck1的消息,並且永遠不能訂閱和查看其他卡車發佈的任何其他消息。可能嗎?你會讓我讓我怎麼做?

:所有的卡車和應用程序連接到同一個經紀人,並讓我們假設它是Mosquitto

回答

0

大多數MQTT代理支持給定用戶的主題級別的ACL所以假設每輛卡車消息發佈到獨特的主題(或主題前綴,因爲ACL往往支持通配符),每個卡車和應用都有自己的用戶,因此您應該能夠安排所需的任何訪問隔離。

每個代理有不同的管理這些ACL的機制,例如這裏是蚊子的詳細信息。

爲mosquitto的ACL格式的文檔中可以找到它的人頁面在這裏:https://mosquitto.org/man/mosquitto-conf-5.html

您的ACL文件添加到mosquitto.conf與acl_file選項:

acl_file /path/to/acl/file 

ACL文件格式看起來像這樣:

user <username> 
topic [read|write|readwrite] <topic> 

您可以有每個用戶多個主題行。

如何啓用用戶身份驗證的詳細信息也位於手冊頁中。

+0

任何特定的投票原因,這回答了這個問題? – hardillb