You need to enable JavaScript to run this app.
文档中心
云原生消息引擎

云原生消息引擎

复制全文
下载 pdf
最佳实践
快速构建第一个 MQTT 连接
复制全文
下载 pdf
快速构建第一个 MQTT 连接
云原生消息引擎 MQTT 版与火山引擎的多个云产品组合,可以支持大规模的 MQTT 连接。MQTT 的企业级产品中涉及云产品控制台、EMQX Dashboard、MQTT 认证、鉴权、接入 等多个概念。本文组合多个文档,为首次使用 MQTT 的客户快速构建第一个 MQTT 连接。
准备工作
操作流程
  1. 配置公网接入
  1. 免密接入 EMQX
  1. Password-Based 认证接入
  1. (可选)通过 MQTTX 连接 EMQX 实例
配置公网接入
  1. 查看 MQTT 实例状态。
  1. 新增公网接入点。
  • 云原生消息引擎支持创建一个公网接入的 MQTT 接入点,即可实现公网的 MQTT 设备接入,详见添加公网监听器
  1. 路由类型选择公网
  1. 绑定已有的空闲公网 IP
  1. 协议选择为 TCP 协议Image
免密接入 EMQX
Paho 提供了一系列库,允许开发者使用 MQTT 协议进行消息通信。对于 Python SDK,可以使用 pip 安装 paho-mqtt,通过它来连接 MQTT 服务器、发布消息和订阅主题。
  1. 安装 paho-mqtt。
  • pip install paho-mqtt
  1. python3 构建 MQTT 连接。
  1. 创建公网接入点后,在控制台看到公网接入地址。
  1. 替换新的 broker_address 接入 emqx。
  • import paho.mqtt.client as mqtt
    # 当客户端连接到服务器时调用此回调函数
    def on_connect(client, userdata, flags, rc):
    print("连接结果码:", rc)
    # 当收到消息时调用此回调函数
    def on_message(client, userdata, msg):
    print("收到消息,主题:", msg.topic, "内容:", msg.payload.decode())
    # 创建一个 MQTT 客户端实例
    client = mqtt.Client()
    # 绑定回调函数
    client.on_connect = on_connect
    client.on_message = on_message
    # 连接到指定的 MQTT 服务器,不使用 SSL,不需要用户名密码
    # 修改 emqx broker 位置,将控制台的公网接入点地址复制到 broker_address
    broker_address = "mqtt-xxxxxxxxxx.mqtt.volces.com"
    broker_port = 1883
    client.connect(broker_address, broker_port, keepalive=60)
    # 开始网络循环,等待并处理 MQTT 消息
    client.loop_forever()
  1. 检查 MQTT 设备连接状态。
  1. 登录 MQTT Dashboard。
  1. 在左侧导航栏选择监控 > 客户端,查看当前设备的连接状态以及连接详情。Image
Password-Based 认证接入
  1. 创建用户。
  • Dashboard 用户采用 RBAC(Role Based Access Control)模型,详见创建用户
  • 首次访问 MQTT Dashboard 时,需要配置 Dashboard 的用户名、密码、角色。此处角色建议设置为管理员,以便于后续演示操作。Image
  1. 登录 Dashboard。
  • MQTT Dashboard 默认配置为公网可访问,通过 Dashboard 地址可以接入 MQTT Dashboard,详见登录 DashboardImage
  1. 配置 MQTT 客户端连接认证方式。
  • EMQX 通过内置数据库为用户提供了一种低成本、开箱即用的密码认证方式。启用后,EMQX 会将内置的 Mnesia 数据库存储客户端身份凭据,详见客户端认证概述
  1. 数据源选择内置数据库(默认)
  1. 账号类型选择 username(默认)
  1. 密码加密方式选择 sha256(默认)
  1. 加盐方式 suffix(默认)
  • Image
  1. 配置认证使用的用户名和密码。
  • 添加 MQTT 客户端认证所使用的用户名和密码,详细操作请参见单个添加用户
  1. 用户名配置为 user
  1. 密码配置为 123456Image
  1. 配置 MQTT 客户端权限。
  • 通过配置 MQTT 客户端授权机制,无需编写代码或手动编辑配置文件,即可实现对 MQTT 客户端连接后的发布和订阅操作进行权限控制。详见客户端授权概述
  1. Python3 paho 用户名密码接入 EMQX。
  • import paho.mqtt.client as mqtt
    # 连接成功回调函数
    def on_connect(client, userdata, flags, rc):
    print("连接返回码:", rc)
    # 消息接收回调函数
    def on_message(client, userdata, msg):
    print("主题:", msg.topic)
    print("消息:", msg.payload.decode())
    # 创建 MQTT 客户端实例
    client = mqtt.Client()
    # 设置用户名和密码
    client.username_pw_set("user", "123456")
    # 绑定回调函数
    client.on_connect = on_connect
    client.on_message = on_message
    # 连接到 MQTT 服务器(不使用 SSL)
    client.connect("mqtt-0040ogedpfhc.mqtt.volces.com", 1883, 60)
    # 开启网络循环,保持连接
    client.loop_forever()
  1. 检查 MQTT 连接状态。Image
通过 MQTTX 连接 EMQX 实例(可选)
MQTTX 是由 EMQ 开发的一款开源跨平台 MQTT 5.0 桌面客户端,它兼容 macOS,Linux 以及 Windows 系统。用户界面采用聊天式设计,使得操作逻辑更加简明直观。它支持用户快速创建和保存多个 MQTT 连接,便于测试 MQTT 连接,以及消息的订阅和发布。
  1. 登录 MQTTX 客户端。
  1. 通过配置服务器地址、端口、用户名、密码接入云原生消息引擎 MQTT 版。Image
最近更新时间:2025.08.04 17:46:11
这个页面对您有帮助吗?
有用
有用
无用
无用