1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | 這段程式碼是設定 MQTT 客戶端的**事件監聽器**,用來處理連線過程中的各種狀態變化。讓我逐一說明: ## 1. 連線成功事件 ```javascript mqttClient.on('connect', function () { console.log('MQTT 連接成功'); updateMQTTStatus(true); }); ``` - **觸發時機:** 當成功連接到 MQTT broker 時 - **執行動作:** - 在控制台輸出成功訊息 - 呼叫 `updateMQTTStatus(true)` 更新 UI 狀態為「已連線」 ## 2. 連線錯誤事件 ```javascript mqttClient.on('error', function (error) { console.error('MQTT 連接錯誤:', error); updateMQTTStatus(false); alert('MQTT 連接失敗: ' + error.message); }); ``` - **觸發時機:** 當連線過程發生錯誤時(網路問題、認證失敗等) - **執行動作:** - 在控制台輸出錯誤訊息 - 呼叫 `updateMQTTStatus(false)` 更新 UI 狀態為「未連線」 - 彈出警告視窗告知使用者連線失敗 ## 3. 連線關閉事件 ```javascript mqttClient.on('close', function () { console.log('MQTT 連接關閉'); updateMQTTStatus(false); }); ``` - **觸發時機:** 當 MQTT 連線被關閉時(主動斷線或網路中斷) - **執行動作:** - 在控制台輸出關閉訊息 - 呼叫 `updateMQTTStatus(false)` 更新 UI 狀態為「未連線」 ## 整體目的 這些事件監聽器確保: 1. **狀態同步:** UI 介面能即時反映 MQTT 連線狀態 2. **錯誤處理:** 當連線出問題時能適當通知使用者 3. **除錯資訊:** 透過 console 輸出協助開發者追蹤連線狀態 `updateMQTTStatus()` 函數應該是用來更新網頁上的連線狀態指示器(例如改變按鈕顏色、顯示連線圖示等)。 |
Direct link: https://paste.plurk.com/show/Q1pU7hEdYhlJAJLMc4KX