想問一下,MQTT的Topic應該是不算太重要的吧?
以我自己對MQTT的理解,
Broker本身應該不重視自己上面到底有幾個Topic。
最近比較閒,突然想起之前遇過一個專案是把MQTT當成HTTP在用。
收跟發各一個Topic, AAA / 收、AAA / 發這樣。
大概像這樣:
GetShoppingCart / Requests:伺服器監聽Requests,並且發佈到Responds。
GetShoppingCart / Responds
訊息大概像:
{
User: AAAA
RequestID :XXXXXX
}
Responds :
{
User: AAAA
RequestID :XXXXXX
ShoppingCart : [
{item}, {item}, {item}
]
}
https://resource.webduino.io/blog/mqtt-guide但是根據我找到的MQTT Best Practice ,Topic這東西應該是很低價的吧?
照上面的案例,其實應該可以改成:
伺服器監聽 GetShoppingCart / # / Request
然後Publish到:GetShoppingCart / {UserID} / Response 吧。
上下行電文結構都同上。
但是被說這樣會導致Topic數量過度增加。
MQTT這東西的強項不就是不用事先定義路由,想Publish就Publish,沒人聽就沒人聽嗎?
像是今天居家環境,原本擺了四個感測器:HOME/SENSOR1~4
結過現在又多了四個,不用重新設定,請他Publish到
HOME/SENSOR5~8,我接收資料的伺服器這邊只要監聽HOME/#
就全部監聽到,管你接多少個感測器。
島島我是不是搞錯甚麼了,
另外一個題外話是,找到文章說MQTT是「穩定且可靠」的協議,
但是不太懂為什麼一個控制訊息最小只有兩個Byte的協議會穩定且可靠,是指其他意義上的可靠嗎?