本文介紹物聯網平台支援的MQTT 5.0新特性的請求與響應模式。
背景資訊
MQTT協議採用發布與訂閱模式,通過非同步訊息傳輸,實現發行者和訂閱者完全解耦。在物聯網裝置的實際業務情境下,可使用請求與響應模式,解決需要回複的情境需求。例如服務端控制裝置開關、裝置請求服務端資料等情境。
功能說明
MQTT 5.0實現請求與響應模式,並不與HTTP協議一樣使用同步方式,而是在發布與訂閱基礎上,通過在訊息中添加響應主題和關聯資料,實現請求與響應的關聯,使用非同步訊息方式簡化響應端的開發。
響應主題(ResponseTopic):字串,儲存響應端發布返回訊息的Topic。
關聯資料(CorrelationData):位元據,儲存本次請求的上下文資料。
請求與響應模式通訊流程圖如下:
重要
當同時存在多次請求時,可以在關聯資料中添加請求ID,確定對應請求的響應。
裝置的遠程即時控制也可以使用物聯網平台提供的RRPC能力,以實現結果同步返回。
發布QoS 1訊息只保證訊息到物聯網平台,為保證訂閱端正確接收並完成處理,建議使用請求與響應模式。
應用情境
裝置端請求服務端資料
在物聯網裝置的某些情境下,裝置需要向服務端請求資料。例如:智能炒菜機,需要向雲端請求擷取各種菜譜,每種菜譜對應不同的主題(Topic),使用請求與響應模式,服務端只需要回複菜譜內容,不需要關注相應的Topic,簡化了商務服務端的開發。
裝置端:類似遠程調用,可以通過關聯資料進行請求與回複的關聯。
商務服務端:無需關注回複訊息的響應Topic,只需要處理業務返回結果。
服務端遠端控制裝置
在服務端遠端控制裝置的情境,例如:遠程向電子鎖發送開門的命令,需要立即有返回。此情境可以使用請求與響應模式,並可在關聯資料中加上鑒權資料,實現終端鑒權。