WebSockets

连接性 > WebSockets

简介

除了 Ajax API,从 5.4.0 版本开始,您可以使用 HTML5 WebSockets 与您浏览器中的代理交换消息。

HTML 5 引入了 WebSockets,作为一种标准化方式,从网页异步地与服务器通信。这实际上是为网页实现异步消息传递的理想通道。由于 JavaScript 很容易处理文本和 JSON 格式的数据,Stomp 协议是在 WebSockets 上使用的线协议的最佳选择。从 5.9.0 版本开始,我们还支持在 WebSockets 上使用高效的二进制 MQTT 协议。

与简单的 Ajax API 相比,该解决方案应该为 JavaScript 客户端提供更好的消息传递功能,因为在 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 应用程序位于同一主机上的代理。

安全 Web Sockets

5.7.0 版本引入了 安全 Web Socket 传输。要配置它,您需要做两件事。首先,您需要像这样配置一个新的传输连接器

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

请注意,我们使用 wss URL 前缀来表示协议的安全版本。接下来,您需要为此传输提供 SSL 上下文。您可以通过在代理配置中以类似于为 sslhttps 传输所做的方式提供 sslContext 来做到这一点。

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

就是这样,您的安全 WebSockets 传输已准备就绪。查看下一部分,了解如何使用演示对其进行测试。

演示

从 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 许可证 2.0 授权。