uniapp--mqtt.js连接rabbitmq频繁断线重连解决办法

在使用uniapp结合RabbitMQ与mqtt.js时,遇到连接频繁掉线并自动重连的问题,通过调整keepAliveInterval参数至10秒,有效解决了这一难题,半小时内未再出现掉线情况。

项目中使用uniapp接入mqtt.js,服务搭配Rabbitmq,在连接中出现mqtt连接成功之后频繁性的掉线自动重连,一个小时左右能出现十几二十次,报错Socket closed

在option中添加

keepAliveInterval:10

可以解决当前问题。测试半个小时后没有出现掉线重连

因为了解不多,具体原因目前没有排查出来,有知道的欢迎留言交流,有更好的办法的也欢迎留言。

 

除了你提到的 `@taoqf/react-native-mqtt`、`react-native-paho-mqtt` 和 `mqtt.js`,在 React Native 中还有其他一些 **MQTT 客户端替代方案** 可供选择,它们各有特点,适用于不同项目需求。 --- ### ✅ 常见的 MQTT 替代方案(React Native 可用) #### 1. **Paho-MQTT(WebSocket)** - **npm 包**: [`paho-mqtt`](https://www.npmjs.com/package/paho-mqtt) - **特点**: - 支持 WebSocket 连接(适合 React Native) - 纯 JavaScript 实现,兼容性好 - **适合场景**:需要使用 WebSocket 连接MQTT Broker ```bash npm install paho-mqtt ``` #### 2. **Hermes MQTT Client(轻量级)** - **npm 包**: [`hermes-mqtt`](https://www.npmjs.com/package/hermes-mqtt) - **特点**: - 极简 API,适合快速集成 - 基于 `paho-mqtt` 封装 - **适合场景**:需要轻量级封装的项目 #### 3. **MQTT over WebSocket(使用 `WebSocket` 原生 API)** - **特点**: - 直接使用 React Native 的 `WebSocket` API - 需要手动实现 MQTT 协议握手与数据格式解析 - **适合场景**:对性能和控制有极高要求的项目 #### 4. **RiotMQTT(实验性)** - **npm 包**: [`riot-mqtt`](https://github.com/cesbit/riot-mqtt) - **特点**: - 轻量级 MQTT 客户端 - 社区活跃度一般,文档较少 - **适合场景**:小型项目或测试用途 #### 5. **MQTT.js + WebSocket 模式** - **说明**: - 使用 `mqtt.js` 的 `webSocket` 传输方式 - 配合 `rn-nodeify` 或 `react-native-tcp` 模块 - **适合场景**:希望保留 `mqtt.js` 功能但运行在 RN 中 --- ### ✅ 替代方案对比表 | 方案 | 是否支持 RN | 协议支持 | 是否需要 Native 模块 | 特点 | |------|-------------|----------|----------------------|------| | `mqtt.js` | ✅(需 `rn-nodeify`) | TCP / WebSocket | ❌(模拟) | 功能最全 | | `paho-mqtt` | ✅ | WebSocket | ❌ | 稳定、跨平台 | | `react-native-paho-mqtt` | ✅ | WebSocket | ❌ | 封装好 | | `@taoqf/react-native-mqtt` | ✅ | TCP | ✅ | 原生支持 | | `hermes-mqtt` | ✅ | WebSocket | ❌ | 简洁易用 | | 原生 `WebSocket` | ✅ | WebSocket | ❌ | 控制粒度高 | --- ###
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值