我是MQTT新手,我有一些問題希望你們能幫助我。我工作的一所學校的項目,將要求我利用MQTT協議和程序需要在C(只是一些背景資料)寫入MQTT客戶端同時發佈和訂閱
一個MQTT客戶端既可以是一個出版商和訂戶在同一時間?也就是說,在不斷等待從代理接收消息並執行結果操作的同時,它還能夠在需要時將消息發佈給代理。
我MQTT的理解是這樣:MQTT發佈者 - > MQTT經紀人 - > MQTT用戶
究竟是MQTT的異步模式,在白癡條款?
謝謝!
我是MQTT新手,我有一些問題希望你們能幫助我。我工作的一所學校的項目,將要求我利用MQTT協議和程序需要在C(只是一些背景資料)寫入MQTT客戶端同時發佈和訂閱
一個MQTT客戶端既可以是一個出版商和訂戶在同一時間?也就是說,在不斷等待從代理接收消息並執行結果操作的同時,它還能夠在需要時將消息發佈給代理。
我MQTT的理解是這樣:MQTT發佈者 - > MQTT經紀人 - > MQTT用戶
究竟是MQTT的異步模式,在白癡條款?
謝謝!
1)是的,沒有理由一個MQTT客戶機不能在發佈和訂閱,這是正常的模式爲客戶在工作。
2)異步MQTT客戶端的實現是一個在進行網絡操作(發送或接收數據)時不會阻塞。這意味着所有的網絡操作都在後臺進行,任何通常會阻塞的調用都會返回一個令牌,可以用來檢查該操作是否成功。
1)當你說你的mqtt客戶端已經訂閱了一個特定的主題時,這意味着它會一直聽,直到它被取消訂閱或連接被終止。當您說您的mqtt客戶端正在發佈時,它會將MqttMessage發佈給Broker,並且所有訂閱的客戶端即聽將收到該消息。所以你只需要保持自己的訂閱並開始發佈。
2)異步模式不會阻塞執行任何操作的線程。它只對給定的動作起作用,並返回一個令牌,可用於跟蹤並等待動作完成。這與同步模式相反,線程在到達timeOut時段之前一直處於阻塞狀態,直到動作完成。例如:當以異步模式發佈時,您將返回一個IMqttDeliveryToken,稍後可以使用它來驗證發佈操作是否已完成。
嗨,感謝您的回覆!對於Qn1,我如何才能在編程中實現這一目標?允許一個程序同時執行兩個?我真的很失落,希望你能指出我的方向。謝謝! –
看看這些例子,並開始行動,當你遇到困難時問一個新問題,包括你有的代碼,有人會幫你修復它 – hardillb