用戶端 ID

用戶端 ID 是識別 MQTT 用戶端的 23 個位元組字串。 用戶端 ID 在所有連接至伺服器的用戶端中必須是唯一的,而且不得與伺服器上的佇列管理程式同名。 在這些限制的範圍內,您可以使用任何識別字串。 具有配置用戶端 ID 的程序,以及透過用戶端的選定 ID 來配置用戶端的方法,是非常重要的。

用戶端 ID 用於管理 MQTT 系統。 由於可能需要管理幾十萬個用戶端,您需要能夠迅速識別特定用戶端。 例如,假設某個裝置發生故障,而您可能透過客戶呼叫服務台得到通知。 客戶如何識別裝置,而您如何使該識別與通常連接至用戶端的伺服器相關聯呢? 您需要查詢將每個裝置對映至用戶端 ID 以及伺服器的資料庫嗎? 裝置的名稱是否識別它連接至的伺服器? 當您瀏覽 MQTT 用戶端連線時,會以用戶端 ID 標示每一個連線。 您需要查閱某個表格,以將用戶端 ID 對映至實體裝置嗎?

用戶端 ID 是否識別在用戶端上執行的特定裝置、使用者或應用程式? 如果客戶用新裝置更換發生故障的裝置,新裝置的 ID 與舊裝置是否相同? 您來配置新 ID 嗎? 如果您變更實體裝置,但保留相同的 ID,則會自動將尚未完成的發佈和作用中的訂閱傳送至新的裝置。

如何確保用戶端 ID 唯一? 而且對於產生唯一 ID 的系統,您必須有可靠的程序來在用戶端上設定 ID。 用戶端裝置可能是一個「黑箱」,沒有使用者介面。 您是否利用用戶端 ID(例如使用其 MAC 位址)來製造該裝置? 或者,您是否具有軟體安裝和配置程序,會在啟動裝置之前對其進行配置?

您可能會利用 48 位元的裝置 MAC 位址建立用戶端 ID,以讓 ID 保持簡短且唯一。 如果傳輸大小並非重要問題,則您可能會使用剩餘的 17 個位元組來簡化位址管理。