Skip to content

MQTT over TCP 桥接 ​

MQTT over TCP 桥接是一种使用传输控制协议(TCP)作为底层通信协议的 MQTT 桥接方式。这种桥接方式利用了 TCP 的可靠传输特性,确保了 MQTT 消息在跨网络或跨代理通信时的完整性和准确性。通过优化的配置和管理,MQTT over TCP 桥接可以灵活地应对各种网络环境和应用场景,是实现物联网(IoT)设备间通信的重要工具。NanoMQ 现已支持通过 MQTT over TCP 桥接连接至 EMQX 企业级 MQTT 物联网接入平台。

配置 MQTT over TCP 桥接 ​

NanoMQ 已内置对 MQTT over TCP 桥接的支持,因此当您通过各种方式安装 NanoMQ 后,即可直接通过配置文件配置并启用 MQTT over TCP 桥接。

这里将使用 EMQ 提供的免费公共桥接 broker.emqx.io:1883 来构建 MQTT over TCP 数据桥接。

TIP

使用 mqtt-tcp 作为 URL 前缀即是采用 TCP 作为 MQTT 的传输层。 由 quic 作为前缀的配置选项对于 TCP 桥接不生效。

重点配置项:

  • 远端 broker 地址:bridges.mqtt.name.server
  • 转发远端 Topic 数组(支持 MQTT 通配符): bridges.mqtt.name.forwards
  • 订阅远端 Topic 数组(支持 MQTT 通配符): bridges.mqtt.name.subscription

具体配置参数请参考桥接 Hocon 版本配置 或 旧版本配置 (不推荐)

如使用 Hocon 版本配置项且 NanoMQ 版本在 0.19 及以上,除将相关配置直接写入 nanomq.conf 中外,您也可单独为桥接定义一份配置文件,如 nanomq_bridge.conf ,然后通过 HOCON 的 include 语法在 nanomq.conf 中引用此文件:

示例:

shell
include "path/to/nanomq_bridge.conf"

如需查看运行过程中更多日志数据,可以在配置文件中设置日志等级 log.level

启动 NanoMQ ​

启动 NanoMQ 时使用--conf 指定配置文件路径(若配置文件已放置于系统路径 /etc/nanomq.conf 则无需在命令行指定)

测试桥接 ​

本节将通过 MQTTX 客户端工具来测试新建的 MQTT 数据桥接,我们将新建 2 个连接,分别连接到 NanoMQ 和 MQTT 数据桥接,用于验证 NanoMQ 和数据桥接的消息收发服务。

连接到 NanoMQ

Connect to NanoMQ

连接到数据桥接

Connect to Public Broker

验证 NanoMQ 到数据桥接的消息服务

在连接数据桥接的客户端 MQTTbridge 中,订阅 forward1/# 主题。

在连接 NanoMQ 的客户端 NanoMQTest 中,向 forward1/# 主题发送消息 ,如 Hello from NanoMQ 。

可以看到,消息被成功转发到 MQTT 数据桥接。

message from nanomq

验证数据桥接到 NanoMQ 的消息服务

在连接 NanoMQ 的客户端 NanoMQTest 中,订阅 recv/topic1 主题。

在连接数据桥接的客户端 MQTTbridge 中,向 recv/topic1 主题发布信息,例如:Hello from broker.emqx.io。

验证是否收到了从 broker.emqx.io 发布的消息。

message from broker