欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 金融 > EMQX 作为 MQTT Broker,支持 ​MQTT over TCP​ 和 ​MQTT over WebSocket​ 两种协议

EMQX 作为 MQTT Broker,支持 ​MQTT over TCP​ 和 ​MQTT over WebSocket​ 两种协议

2025/5/12 22:13:33 来源:https://blog.csdn.net/dota51888/article/details/147783932  浏览:    关键词:EMQX 作为 MQTT Broker,支持 ​MQTT over TCP​ 和 ​MQTT over WebSocket​ 两种协议

1. EMQX 支持的协议与端口

协议类型默认端口用途说明
MQTT over TCP1883标准的 MQTT 协议,基于 TCP 传输(用于后端服务、物联网设备等)。
MQTT over TLS8883加密的 MQTT over TCP(TLS/SSL 加密,安全性更高)。
MQTT over WS8083基于 WebSocket 的 MQTT(用于浏览器、Web 前端等需要跨域的场景)。
MQTT over WSS8084加密的 MQTT over WebSocket(TLS/SSL 加密)。
关键点
  • MQTT over TCP​:直接通过 TCP 传输 MQTT 数据包(高性能,适合后端服务)。
  • MQTT over WebSocket​:将 MQTT 数据包封装在 WebSocket 帧中传输(兼容浏览器,适合 Web 应用)。
  • 交互本质​:无论使用哪种协议,EMQX 都会将消息统一处理。例如:
    • 一个 TCP 客户端发布消息到主题 sensor/data,WebSocket 客户端订阅同一主题时也能收到消息。
    • 协议对客户端透明,仅影响连接方式,不影响消息路由逻辑。

2. 在 EMQX 管理后台区分不同协议

在 EMQX Dashboard 中,可以通过以下方式区分不同协议的客户端:

​(1) 查看监听器(Listeners)​
  1. 进入 EMQX Dashboard(默认地址 http://<EMQX-IP>:18083)。

  2. 导航到 ​Management → Listeners
    https://static.emqx.net/images/emqx-listener-config.png

  3. 查看已启用的监听器:

    • TCP 监听器​:端口 1883(默认名称 mqtt:tcp:internal)。
    • WebSocket 监听器​:端口 8083(默认名称 mqtt:ws:internal)。
    • 如果启用了 TLS,会显示 8883(TCP TLS)和 8084(WebSocket TLS)。
​(2) 客户端连接信息
  1. 进入 ​Clients​ 页面,查看已连接的客户端。
  2. 在客户端详情中,​Transport​ 字段会显示协议类型:
    • TCP:表示通过 TCP 连接。
    • WS:表示通过 WebSocket 连接。
    • WSS:表示通过加密的 WebSocket 连接。

3. 你的配置与 EMQX 的对应关系

根据你的配置文件:

yaml

mqtt:BASIC:  # MQTT over TCPprotocol: MQTThost: 10.10.206.48port: 1883  # EMQX 的 TCP 监听端口DRC:    # MQTT over WebSocketprotocol: WShost: 10.10.206.48port: 8083  # EMQX 的 WebSocket 监听端口path: /mqtt # WebSocket 路径
验证配置是否生效
  1. 检查 EMQX 监听器​:

    • 确认 18838083 端口的监听器已启用(通过 Dashboard 的 ​Listeners​ 页面)。
    • 如果未启用,需在 EMQX 配置文件 emqx.conf 中添加:
      listeners.tcp.default.bind = 1883
      listeners.ws.default.bind = 8083
      listeners.ws.default.path = /mqtt
  2. 测试客户端连接​:

    • 使用 BASIC 配置的客户端(TCP)连接到 1883 端口。
    • 使用 DRC 配置的客户端(WebSocket)连接到 8083 端口,路径为 /mqtt

4. 注意事项

  1. 端口冲突​:

    • 确保 EMQX 的 TCP 和 WebSocket 端口未被防火墙拦截。
    • 如果端口未开放,客户端会连接失败。
  2. 路径(Path)​​:

    • WebSocket 连接的 path 必须与 EMQX 监听器的配置一致(例如 /mqtt)。
    • 如果路径不匹配,WebSocket 握手会失败。
  3. 安全性​:

    • 生产环境建议使用 TLS 加密(端口 88838084)。
    • 在 Dashboard 的 ​Listeners​ 页面可配置 TLS 证书。

总结

  • EMQX 同时支持 MQTT over TCP 和 WebSocket,通过不同端口和协议类型区分。
  • 交互逻辑统一​:无论客户端使用哪种协议,消息路由和主题订阅/发布的行为一致。
  • 在 Dashboard 中​:通过监听器状态和客户端详情即可区分协议类型。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词