当前位置: 首页 > news >正文

【uni-app多端】修复stmopjs下plus-websocket无心跳的问题

从这篇文章接着向下看:

uniapp plus-websocket 和stompjs连接教程 安卓ios手机端有效 - 简书

按照文章的方式,能够实现APP下stmopjs长连接。但是有一个问题,就是会频繁输出

res-创建连接-1-

 跟踪连接,会发现连接都会在大约40s后掉线断开,然后由于stompjs保活机制又进行重连。在重连过程中,对应的消息接收不到。导致出现部分消息丢失的情况。

目前解决的办法,是自己实现一个心跳逻辑,每隔指定的时间发送。就完成了连接保活。修改如下:

import socket from 'plus-websocket'class WebSocketPolyfill {constructor(url) {
。。。。connected() {return socket.connected}
}export default WebSocketPolyfill
      client = new Client({// #ifndef H5webSocketFactory() {if (isMp) {// 微信小程序return new Ws({url: amqpServerUrl,protocols: ['v12.stomp', 'v11.stomp', 'v10.stomp'] // ← 这是 stomp 协议的默认写法,可供参考})} else {appWs = new WebSocket(amqpServerUrl)return appWs// Android | IOS}},。。。。。const appHeartbeat = () => {setTimeout(() => {if (appWs.connected) {const buffer = new ArrayBuffer(1) // 创建一个1字节的ArrayBufferconst view = new Uint8Array(buffer)view[0] = 0x09 // 根据RFC6455, opcode 0x9 表示ping帧appWs.send(buffer)appHeartbeat()}}, HEARTBEAT_INTERVAL)
}

然后在onConnect后激活心跳

        onConnect: () => {// connect to user channel....// #ifdef APP-PLUSappHeartbeat()// #endif},

这样就解决了掉线问题

http://www.lryc.cn/news/488373.html

相关文章:

  • VScode学习前端-01
  • Java-05 深入浅出 MyBatis - 配置深入 动态 SQL 参数、循环、片段
  • 突破自动驾驶瓶颈!KoMA:多智能体与大模型的完美融合
  • YOLO入门教程(三)——训练自己YOLO11实例分割模型并预测【含教程源码+一键分类数据集 + 故障排查】
  • 【加入默语老师的私域】C#面试题
  • 称重传感器指示器行业全面且深入的分析
  • NAT网络地址转换——Easy IP
  • 【Visual Studio系列教程】如何在 VS 上编程?
  • Mybatis-Plus 多租户插件属性自动赋值
  • AWTK-WIDGET-WEB-VIEW 实现笔记 (4) - Ubuntu
  • Python入门(7)--高级函数特性详解
  • 【数据库原理】理解数据库,基础知识
  • VConsole——(H5调试工具)前端开发使用于手机端查看控制台和请求发送
  • 论文分享 | FuzzLLM:一种用于发现大语言模型中越狱漏洞的通用模糊测试框架
  • vmWare虚拟环境centos7安装Hadoop 伪分布式实践
  • 【C++入门(一)】半小时入门C++开发(深入理解new+List+范围for+可变参数)
  • Vue 3与TypeScript集成指南:构建类型安全的前端应用
  • MATLAB和Python发射光谱
  • IEEE(常用)参考文献引用格式详解 | LaTeX参考文献规范(IEEE Trans、Conf、Arxiv)| 期刊会议名缩写查询
  • 第二十周:机器学习
  • Elasticsearch面试内容整理-Elasticsearch 基础概念
  • 机器学习算法模型系列——Adam算法
  • Qt按钮类-->day09
  • 基于xr-frame实现微信小程序的手部、手势识别3D模型叠加和石头剪刀布游戏功能
  • 基于Kafka2.1解读Consumer原理
  • 深度学习:ResNet每一层的输出形状
  • 国内几大网络安全公司介绍 - 网络安全
  • 修改Android Studio项目配置JDK路径和项目Gradle路径的GUI工具
  • ✅DAY30 贪心算法 | 452. 用最少数量的箭引爆气球 | 435. 无重叠区间 | 763.划分字母区间
  • 关于Redis单线程模型以及IO多路复用的理解