2016-11-10 32 views
0

我想爲python使用paho.mqtt(project pages),所有的作品都很好。我唯一的問題是我會發現找出誰發送了這個消息是非常有用的。我查了一下源代碼,但是如果在on_message中傳遞的client變量是我用來連接的客戶端或發佈該消息的客戶端的詳細信息(我猜這是第一個選項),我無法理解。paho.mqtt找出是誰發送了有效負載

所以問題是 - 是否有可能找出誰(用戶名)發送了消息?

回答

1

MQTT協議被設計爲儘可能輕,這意味着消息頭包含將消息傳遞給特定主題的絕對最小值。其他任何東西都沒有空間。

MQTT也是Pub/Sub協議,這種類型的協議的關鍵特徵之一是儘可能地將發佈者與訂閱者分離。這意味着出版商不應該在乎有多少訂閱者,並且訂閱者不應該關心信息從哪裏來,只要它是關於其感興趣的主題。

如果您想要獲得除此之外的更多信息消息主題,那麼你必須將它自己添加到有效負載中。

+0

因此,如果我有10個不同的發佈者(說10個不同的客戶),不可能找出誰發送了什麼,除非他們添加到有效載荷? – Greg0ry

+0

是的,另一種選擇是每個客戶發佈自己的主題(使用通用前綴),訂戶可以使用通配符訂閱並使用主題來確定它們來自哪裏 – hardillb

相關問題