更新時(shí)間:2023年06月27日15時(shí)04分 來(lái)源:傳智教育 瀏覽次數(shù):
MQTT 是基于 發(fā)布(Publish)/訂閱(Subscribe) 模式來(lái)進(jìn)行通信及數(shù)據(jù)交換的,與 HTTP 的 請(qǐng)求(Request)/應(yīng)答(Response) 的模式有本質(zhì)的不同。
訂閱者(Subscriber) 會(huì)向 消息服務(wù)器(Broker) 訂閱一個(gè) 主題(Topic) 。成功訂閱后,消息服務(wù)器會(huì)將該主題下的消息轉(zhuǎn)發(fā)給所有的訂閱者。
主題(Topic)以 ‘/’ 為分隔符區(qū)分不同的層級(jí)。包含通配符 ‘+’ 或 ‘#’ 的主題又稱(chēng)為 主題過(guò)濾器(Topic Filters); 不含通配符的稱(chēng)為 主題名(Topic Names) 例如:
chat/room/1 sensor/10/temperature sensor/+/temperature $SYS/broker/metrics/packets/received $SYS/broker/metrics/#
'+': 表示通配一個(gè)層級(jí),例如a/+,匹配a/x, a/y '#': 表示通配多個(gè)層級(jí),例如a/#,匹配a/x, a/b/c/d 注: ‘+’ 通配一個(gè)層級(jí),’#’ 通配多個(gè)層級(jí)(必須在末尾)。
發(fā)布者(Publisher) 只能向 ‘主題名’ 發(fā)布消息,訂閱者(Subscriber) 則可以通過(guò)訂閱 ‘主題過(guò)濾器’ 來(lái)通配多個(gè)主 題名稱(chēng)。
會(huì)話(Session)
每個(gè)客戶端與服務(wù)器建立連接后就是一個(gè)會(huì)話,客戶端和服務(wù)器之間有狀態(tài)交互。會(huì)話存在于一個(gè)網(wǎng)絡(luò)之間,也可能在客戶端和服務(wù)器之間跨越多個(gè)連續(xù)的網(wǎng)絡(luò)連接。
北京校區(qū)