更新记录
1.0.2(2024-08-12)
添加息屏保活
1.0.1(2024-08-10)
解决主动关闭连接还会自动重连问题
1.0.0(2024-08-10)
插件初次上传
查看更多
平台兼容性
App |
快应用 |
微信小程序 |
支付宝小程序 |
百度小程序 |
字节小程序 |
QQ小程序 |
HBuilderX 4.21,Android:4.4,iOS:不确定,HarmonyNext:不确定 |
× |
× |
× |
× |
× |
× |
钉钉小程序 |
快手小程序 |
飞书小程序 |
京东小程序 |
× |
× |
× |
× |
H5-Safari |
Android Browser |
微信浏览器(Android) |
QQ浏览器(Android) |
Chrome |
IE |
Edge |
Firefox |
PC-Safari |
× |
× |
× |
× |
× |
× |
× |
× |
× |
使用说明
下载试用本插件后,请重新打包自定义基座
如果使用该插件,请删除自己引入的 amqp-client 相关 jar 包,避免打包自定义基座 class 冲突
该插件使用 rabbitMQ 官方 amqp-client(AMQP 协议)连接 rabbitMQ 服务端,可以发送消息到队列、发送消息到交换机、也可以通过订阅实现订阅模式、路由模式、主题模式等
该插件实现了连接断开后自动重连,每 5 秒尝试进行重连,重连后自动订阅连接丢失前的订阅
rabbitMQ 官网文档
有关于该插件的疑问或者技术探讨可以联系作者(备注来源)
wx 号:z1003975792y
API 介绍
1、连接函数 connect
参数 |
类型 |
必填 |
备注 |
option |
object |
是 |
连接参数 |
import { connect } from '@/uni_modules/zy-rabbitmq'
let option = {
host: '10.10.xx.xx', // 必填,rabbitMq服务端ip
port: 5672, // 必填,端口
userName: 'xxxx', // 必填,连接rabbitMq用户名
password: 'xxxx', // 必填,连接rabbitMq密码
virtualHost: '/', // 必填, 虚拟主机名,根据自己的rabbitMq修改
success: (code) => {}, // 必填,连接成功的回调函数,code 200 成功 301 已经连接
fail: (code, msg) => {}, // 必填,连接失败的回调函数,code 500 msg 失败的原因
keepAlive: false, // 选填,是否保活(息屏保活),默认是false,对于Android O及以上版本,如果你的应用处于后台,你需要将服务转变为前台服务来避免系统在一定时间后杀死服务。这需要通过创建一个持续在通知栏显示的通知来实现。
notificationContentText, // 选填,通知内容,默认(应用正在后台运行,这有助于提供定制的服务和改善用户体验。)
notificationContentTitle, // 选填,通知标题,默认(后台应用持续运行)
}
// 连接rabbitMq
connect(option)
2、发布消息到队列函数 publish
参数 |
类型 |
必填 |
备注 |
option |
object |
是 |
参数 |
import { publish } from '@/uni_modules/zy-rabbitmq'
var message = { a: 1, b: 2 }
let option = {
queueName: 'xxxx', // 必填,队列名
message: JSON.stringify(message), // 必填,发布的消息内容,类型是string
durable: false, // 可选,默认是false,如果队列在服务端已存在,请与服务端的该队列的durable保持一致,不一致会报错,如果不存在该队列,则会创建新的队列,这里随你设置
exclusive: false, // 可选,默认是false,如果队列在服务端已存在,请与服务端的该队列的exclusive保持一致
autoDelete: false, // 可选,默认是false,如果队列在服务端已存在,请与服务端的该队列的autoDelete保持一致
channelKeep: false, // 可选,默认是false,高频次发送消息请开启,低频次发送消息请关闭
success: (code) => {}, // 必填,发布消息成功的回调函数,code 200 成功
fail: (code, msg) => {}, // 必填,连接失败的回调函数,code 500 msg 失败的原因
}
// 发布消息到xxx队列
publish(option)
3、发布消息到交换机函数 publishToExchange
参数 |
类型 |
必填 |
备注 |
option |
object |
是 |
参数 |
import { publishToExchange } from '@/uni_modules/zy-rabbitmq'
var message = { a: 1, b: 2 }
let option = {
exchange: 'xxxx', // 必填,交换机名
exchangeType: 'topic', // 必填,交换机类型,一般有topic,direct,fanout三种类型,fanout一般用于订阅模式,direct一般用于路由模式,topic一般用于主题模式
routingKey: 'xx.xx', // 必填,路由key,交换机类型为fanout时可为空
message: JSON.stringify(message), // 必填,发布的消息内容,类型是string
durable: false, // 可选,默认是false,如果交换机在服务端已存在,请与服务端的该交换机的durable保持一致,不一致会报错,如果不存在该交换机,则会创建新的交换机,这里随你设置
autoDelete: false, // 可选,默认是false,如果交换机在服务端已存在,请与服务端的该交换机的autoDelete保持一致
channelKeep: false, // 可选,默认是false,高频次发送消息请开启,低频次发送消息请关闭
success: (code) => {}, // 必填,发布消息成功的回调函数,code 200 成功
fail: (code, msg) => {}, // 必填,连接失败的回调函数,code 500 msg 失败的原因
}
// 发布消息到xxx交换机
publishToExchange(option)
4、订阅函数 subscribe
参数 |
类型 |
必填 |
备注 |
option |
object |
是 |
参数 |
import { subscribe } from '@/uni_modules/zy-rabbitmq'
let option = {
exchange: 'xxxx', // 必填,交换机名
exchangeType: 'topic', // 必填,交换机类型,一般有topic,direct,fanout三种类型,fanout一般用于订阅模式,direct一般用于路由模式,topic一般用于主题模式
routingKey: 'xx.xx', // 必填,路由key,交换机类型为fanout可为空
message: JSON.stringify(message), // 必填,发布的消息内容,类型是string
durable: false, // 可选,默认是false,如果交换机在服务端已存在,请与服务端的该交换机的durable保持一致,不一致会报错,如果不存在该交换机,则会创建新的交换机,这里随你设置
autoDelete: false, // 可选,默认是false,如果交换机在服务端已存在,请与服务端的该交换机的autoDelete保持一致
callback: (res) => {}, // 必填,接收到消息的回调函数,res是消息内容 string类型
fail: (code, msg) => {}, // 必填,订阅失败的回调函数,code 500 msg 失败的原因
}
// 发布消息到xxx交换机
let consumerTag = subscribe(option) // consumerTag:消费者的唯一标识,用于取消订阅
5、取消订阅函数 unsubscribe
参数 |
类型 |
必填 |
备注 |
consumerTag |
string |
是 |
消费者的唯一标识 |
(code, msg)=>{} |
function |
是 |
取消订阅的回调 |
import { unsubscribe } from '@/uni_modules/zy-rabbitmq'
unsubscribe(consumerTag, (code, msg) => {
console.log(code, msg) // 200是取消订阅成功 500 取消订阅失败 msg 是详细信息
})
6、监听连接丢失函数 onLostConnect
参数 |
类型 |
必填 |
备注 |
(res)=>{code, msg} |
function |
是 |
连接丢失的回调函数 |
import { onLostConnect } from '@/uni_modules/zy-rabbitmq'
onLostConnect((code, msg) => {
console.log(code, msg) // code 500 连接丢失 msg 连接丢失的原因
})
7、监听连接恢复函数 onRecovery
默认在连接丢失的情况下会自动重连,该函数是监听连接恢复状态的回调函数
参数 |
类型 |
必填 |
备注 |
(res)=>{code, msg} |
function |
是 |
连接恢复的回调函数 |
import { onRecovery } from '@/uni_modules/zy-rabbitmq'
onRecovery((code, msg) => {
console.log(code, msg) // code 200 连接恢复成功 500 连接恢复失败 msg是详细信息
})
8、关闭连接函数 closeConnect
参数 |
类型 |
必填 |
备注 |
(res)=>{code} |
function |
是 |
关闭连接的回调函数 |
import { closeConnect } from '@/uni_modules/zy-rabbitmq'
closeConnect((code) => {
console.log(code) // code 200 连接关闭成功 500 连接关闭失败
})