跳到內容

模擬 WebSocket、Socket.IO 與 MQTT

WebSocket 這個請求類型可以通往三種伺服器,取決 於您選的協定。

在資料夾上按右鍵 ▸ 新增 ▸ WebSocket 伺服器 / Socket.IO 伺服器 / MQTT 伺服器

一個正在監聽的 MQTT 伺服器項目:broker 的連接埠、主題與 QoS、狀態「0 個用戶端已連線」,以及訊息 MQTT broker listening on mqtt://localhost:1884

接受 localhost:<port> 上進來的連線,並且能對已連線的用戶端發出訊框。

一樣的東西,但採用 Socket.IO 的語意:訊息是具名事件

三者之中最有意思的一個:Restorm 會託管一個真正的本機 MQTT broker

  • 每個連接埠一個 broker。
  • 既能用原始 TCP 存取,能透過 MQTT-over-WebSocket 閘道存取 — 所以您的 瀏覽器用戶端可以直接連上去。
  • 發布與訂閱都照常運作,包含 QoS 與 Retain。

這讓您能開發並測試一整條 IoT 鏈路,不必安裝 Mosquitto,也不必依賴一個共用的 broker

這些伺服器會和同一個連接埠上的 HTTP 伺服器共用 socket:Restorm 會把普通請求送往 HTTP 路由,把切換協定(upgrade)的請求送往即時伺 服器。

所以一個 HTTP 模擬伺服器和一個 Socket.IO 伺服器可以一起在 :8080 上監聽 — 這往往正 好就是一個真實 Web 應用程式的拓撲。

關閉 WebSocket 伺服器關閉 Socket.IO 伺服器動作,負責關掉由伺服器模式的連線 動作所開啟的伺服器。請參閱 託管伺服器