WebSockets

連線能力 > WebSockets

簡介

除了 Ajax API 之外,從 5.4.0 版本開始,您可以使用 HTML5 WebSockets 從您的瀏覽器與訊息代理程式交換訊息。

HTML 5 引入了 WebSockets,作為一種從網頁與伺服器非同步通訊的標準化方式。這實際上是實作網頁非同步訊息傳遞的理想通道。由於 JavaScript 可以輕鬆處理文字和 JSON 格式的資料,Stomp 協定是透過 WebSockets 使用的線路協定的不錯選擇。從 5.9.0 版本開始,我們也支援透過 WebSockets 進行高效的二進位 MQTT 協定。

此解決方案應為 JavaScript 客戶端帶來比簡單的 Ajax API 更好的訊息傳遞能力,因為在 JavaScript 中實作 Stomp 或 MQTT 會帶來更多面向訊息的 API 和功能,例如交易。

設定

ActiveMQ Classic 附帶 *WebSocket* 傳輸,該傳輸實作了透過 WebSockets 的 Stomp 功能。

要配置它,您需要將類似以下的內容放入您的 ActiveMQ Classic 設定檔中

<transportConnectors>
  <transportConnector name="websocket" uri="ws://0.0.0.0:61614"/>
</transportConnectors>

值得注意的是,WebSockets (就像 Ajax 一樣) 實作了 *同源政策*,因此您只能存取與執行客戶端的 Web 應用程式位於同一主機上的訊息代理程式。

安全 WebSockets

5.7.0 版本引入了 *安全 WebSocket* 傳輸。要配置它,您需要兩件事。首先,您需要配置一個新的傳輸連接器,如下所示

<transportConnectors>
  <transportConnector name="secure_websocket" uri="wss://0.0.0.0:61614"/>
</transportConnectors>

請注意,我們使用 *wss* URL 前綴來表示協定的安全版本。接下來,您需要為此傳輸提供 SSL 內容。您可以透過在您的訊息代理程式設定中提供 *sslContext* 來完成,方式與您對 *ssl* 或 *https* 傳輸的方式類似。

<sslContext>
    <sslContext keyStore="file:${activemq.conf}/broker.ks"
                keyStorePassword="password" trustStore="file:${activemq.conf}/broker.ts"
                trustStorePassword="password"
    />
</sslContext>

這樣就完成了,您的安全 WebSocket 傳輸已準備就緒。請查看下一節,了解如何使用演示來測試它。

演示

從 5.6.0 版本開始,stomp-websocket 函式庫的修改版演示已與 ActiveMQ Classic Web 演示應用程式整合。
從 5.9.0 版本開始,我們有一個類似的演示,使用 MQTT 和 Eclipse Paho 客戶端

查看演示

客戶端

更多資源

Apache、ActiveMQ、Apache ActiveMQ、Apache 羽毛標誌和 Apache ActiveMQ 專案標誌是 Apache 軟體基金會的商標。版權 © 2024,Apache 軟體基金會。依據 Apache License 2.0 授權。