更新记录
1.0.2(2026-10-17)
1.调整多主题。
- 优化逻辑
1.0.0(2026-10-17)
1.支持AQMP协议直接连接通讯
平台兼容性
uni-app(4.75)
| Vue2 | Vue2插件版本 | Vue3 | Vue3插件版本 | Chrome | Safari | app-vue | app-vue插件版本 | app-nvue | Android | Android插件版本 | iOS | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| √ | 1.0.0 | √ | 1.0.0 | - | - | √ | 1.0.0 | - | 11.0 | 1.0.0 | - | - |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| - | - | - | - | - | - | - | - | - | - | - | - |
zyj-RabbitMQtt
uni-app / uni-app x 的 RabbitMQ(AMQP)客户端插件,封装 amqp-client,支持多队列订阅、事件方式接收消息、自动重连。
仅支持 Android(iOS 为空实现)。
能力
| 能力 | 说明 |
|---|---|
| 连接 AMQP | 支持 host / port / vhost / 用户名密码,默认端口 5672 |
| 多队列订阅 | 一次订阅多个队列,消息回调会带上来源队列名 |
| 事件接收 | 消息到达由原生线程直接推送到 JS,无需轮询 |
| 断开监听 | 连接断开、消费被取消都会回调,附带原因 |
| 自动重连 | 断线每 5 秒重试,成功后自动恢复队列绑定与消费者 |
| 发送消息 | 走默认交换机,routingKey 填队列名 |
| 主动拉取 | 备用拉模式,未注册事件时消息会缓存 |
安装与生效
插件内含第三方库(utssdk/app-android/libs/zyj-amqp.aar),必须制作自定义基座才能生效:
运行 → 运行到手机或模拟器 → 制作自定义基座
运行 → 运行到手机或模拟器 → 运行到 Android App 基座
每次修改插件原生代码或 aar 后,都要重新制作基座。
使用示例
import {
connect, startListen, onGetMsg, onDisconnect, onReconnect,
sendMsg, isConnected, close
} from "@/uni_modules/zyj-RabbitMQtt"
const QUEUES = ["QUEUE", "QUEUE111"]
// 1. 连接(host, port, user, pwd, vhost)
let ok = connect("10.168.2.188", 5672, "sz_prod", "sm*259MQZORw", "/")
if (!ok) {
console.log("连接失败,看控制台日志")
return
}
// 2. 注册事件(只需注册一次)
// 消息到达:queue = 来源队列名,msg = 消息内容
onGetMsg((queue, msg) => {
console.log("收到消息", queue, msg)
})
// 连接断开:reason 为断开原因,插件会自动重连
onDisconnect((reason) => {
console.log("连接断开,自动重连中", reason)
})
// 重连成功:消费者已自动恢复,无需重新订阅
onReconnect(() => {
console.log("已重新连接")
})
// 3. 订阅队列
startListen(QUEUES)
// 发消息(队列必须已存在)
sendMsg("QUEUE", "hello from pda")
// 查询连接状态
if (isConnected()) {
console.log("已连接")
}
// 页面卸载时断开,释放资源
close()
调用顺序
connect → onGetMsg / onDisconnect / onReconnect → startListen → close
事件要在 startListen 之前注册,避免漏掉最早到达的消息。
API
| 方法 | 参数 | 返回 | 说明 |
|---|---|---|---|
connect |
host, port, user, pwd, vhost |
boolean |
连接服务器 |
isConnected |
无 | boolean |
是否已连接 |
startListen |
queues: string[] |
boolean |
订阅队列,注册原生消费者 |
onGetMsg |
cb(queue, msg) |
void |
消息到达事件 |
onDisconnect |
cb(reason) |
void |
连接断开事件 |
onReconnect |
cb() |
void |
自动重连成功事件 |
sendMsg |
queue, msg |
boolean |
发消息到指定队列 |
getMsg |
queue |
string |
主动拉一条(备用) |
getMsgMulti |
queues: string[] |
"队列名\|消息" |
多队列拉一条(备用) |
close |
无 | void |
断开并释放资源 |
完整参数说明见 utssdk/interface.uts。
注意事项
- 事件只注册一次。重复调用会让 callback 常驻内存。
- 自动 ack。消息取出即从服务器删除;若队列还有其他消费者,会互相抢占消息。
- 端口别填错。AMQP 是 5672,15672 是管理后台端口。
sendMsg要求队列已存在,队列不存在时消息会被丢弃且不报错。- 主动
close()不触发onDisconnect,需自行更新 UI 状态。 - 仅 Android 5.0(API 21)及以上可用。

收藏人数:
购买普通授权版(
试用
使用 HBuilderX 导入示例项目
赞赏(0)
下载 4
赞赏 0
下载 12688106
赞赏 1956
赞赏
京公网安备:11010802035340号