更新记录

1.4.0(2026-05-23) 下载此版本

新增支持ios客户端(简单的支持一下能用和mqtt基础功能)调试中,不影响安卓端功能

1.3.4(2026-05-23) 下载此版本

更新新的示例项目

1.3.3(2026-05-23) 下载此版本

更新使用条款

本插件最大限度地允许自由使用,但基于开源精神和技术人员的基本道德底线,明确禁止以下行为:

禁止换马甲重新上传至任何插件市场,无论是否收费。换皮上传已经够恶心,若还设置成收费插件,将依法追究法律责任。

禁止将插件源码上传至其它任何平台进行二次分发。

查看更多

平台兼容性

uni-app(4.41)

Vue2 Vue3 Vue3插件版本 Chrome Safari app-vue app-nvue Android Android插件版本 iOS iOS插件版本 鸿蒙
- 1.0.0 - - - - 5.0 1.0.0 12 1.4.0 ×
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 小红书小程序 快应用-华为 快应用-联盟
- - - - - - - - - - - -

uni-app x(4.41)

Chrome Safari Android Android插件版本 iOS iOS插件版本 鸿蒙 微信小程序
- - 5.0 1.0.0 12 1.4.0 × -

Changbi MQTT 插件

适用于 UniApp (UTS) 的 MQTT 客户端插件,支持 Android 平台。

版本: v1.1.2 | 平台: Android ✅   iOS ✅ | 协议: MQTT 3.1.1 | 许可: MIT


功能特性

  • 支持 TCP、SSL/TLS、WebSocket、WSS 多种连接方式
  • 支持 QoS 0 / 1 / 2 三种服务质量等级
  • 支持通配符订阅(+ 单层、# 多层)
  • 支持遗嘱消息(Will Message)
  • 断线自动重连,重连后自动恢复所有订阅
  • 离线消息队列:未连接时发送的消息重连后自动补发
  • App 后台长连接保活(前台服务 + WorkManager 双层保障)
  • 连接质量统计(发送数、接收数、重连次数、平均重连耗时)

安装

将插件目录复制到项目的 uni_modules 目录下即可,依赖会自动配置。


快速开始

import * as mqtt from '@/uni_modules/changbi-mqtt'

// 1. 注册事件(在 connect 之前)
mqtt.on('connect', (data) => {
  console.log('已连接')
  mqtt.subscribe('test/topic', 1)
})

mqtt.on('message', (data) => {
  console.log(`[${data.topic}]`, data.payload)
})

// 2. 建立连接
await mqtt.connect({
  url: 'mqtt://broker.emqx.io:1883',
  clientId: 'myapp_' + Date.now(),
  keepalive: 60
})

// 3. 发布消息
await mqtt.publish('test/topic', 'Hello MQTT', { qos: 1 })

// 4. 断开连接
await mqtt.disconnect()

连接配置

mqtt.connect({
  // 必填
  url: string               // 支持 mqtt:// mqtts:// ws:// wss://
  clientId: string

  // 认证
  username?: string
  password?: string

  // 会话
  clean?: boolean           // 默认 true
  connectTimeout?: number   // 单位 ms,默认 30000
  keepalive?: number        // 单位秒,默认 60

  // 自动重连
  reconnect?: boolean       // 默认 true
  reconnectPeriod?: number  // 重连间隔 ms,默认 5000
  maxReconnectAttempts?: number  // 最大重连次数,默认 10

  // SSL
  allowUntrusted?: boolean  // 允许不受信任证书,仅测试用

  // 遗嘱消息
  will?: { topic, payload, qos, retain }
})

API

连接

方法 说明
connect(options) 连接到 Broker
disconnect() 断开连接
isConnected() 是否已连接,返回 boolean
getConnectionState() 获取完整连接状态

订阅

方法 说明
subscribe(topic, qos) 订阅主题,支持传数组批量订阅
unsubscribe(topic) 取消订阅,支持传数组批量取消
hasSubscription(topic) 是否已订阅某主题
getSubscriptions() 获取所有订阅列表
getSubscriptionCount() 获取订阅数量

发布

方法 说明
publish(topic, message, options?) 发布消息,支持字符串和 ArrayBuffer

消息队列

方法 说明
getMessageQueueStats() 获取队列统计(待发数、已收数等)
clearMessageQueues() 清空消息队列

统计与日志

方法 说明
getConnectionQualityStats() 获取连接质量统计
resetConnectionQualityStats() 重置统计数据
setLogLevel(level) 设置日志级别(DEBUG/INFO/WARN/ERROR/NONE)

事件

mqtt.on(event, callback)
mqtt.off(event, callback?)
事件 触发时机 主要数据
connect 连接成功 sessionPresent
message 收到消息 topic, payload, qos, retain
reconnect 开始重连 reconnectAttempts
close 连接关闭
offline 重连耗尽/主动断开 error
error 发生错误 error
queued 消息进入离线队列 queuedCount
queue_flushed 离线队列补发完成 flushedCount

常用 Broker

Broker 地址
EMQX 公共测试 mqtt://broker.emqx.io:1883
Mosquitto 公共测试 mqtt://test.mosquitto.org:1883
HiveMQ 公共测试 mqtt://broker.hivemq.com:1883

使用条款

本插件最大限度地允许自由使用,但基于开源精神和技术人员的基本道德底线,明确禁止以下行为:

  • 禁止换马甲重新上传至任何插件市场,无论是否收费。换皮上传已经够恶心,若还设置成收费插件,将依法追究法律责任。
  • 禁止将插件源码上传至其它任何平台进行二次分发。

隐私、权限声明

1. 本插件需要申请的系统权限列表:

android.permission.INTERNET,android.permission.ACCESS_NETWORK_STATE,android.permission.WAKE_LOCK(手动给app 自启动+通知 特权 在息屏保活需求下效果更好 )

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议