更新记录

1.0.2(2024-08-12)

添加息屏保活

1.0.1(2024-08-10)

解决主动关闭连接还会自动重连问题

1.0.0(2024-08-10)

插件初次上传

查看更多

平台兼容性

Vue2 Vue3
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 连接关闭失败
})

隐私、权限声明

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

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

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

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问