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

贵州两学一做网站温州网站优化排名推广

贵州两学一做网站,温州网站优化排名推广,做淘宝客导购网站推广,免费云建站之前全局封装的 webSocket 在某些特定的页面中使用会直接去调用 webSocket 的 onMessage 方法 已进入页面就会调#xff0c;如果退出页面移除整个监听的话全局监听就会被移除 这是修改后的 全局封装 let token uni.getStorageSync(token) const HEARTBEAT_INTERVAL 1 *…之前全局封装的 webSocket  在某些特定的页面中使用会直接去调用  webSocket  的 onMessage 方法 已进入页面就会调如果退出页面移除整个监听的话全局监听就会被移除 这是修改后的 全局封装 let token uni.getStorageSync(token) const HEARTBEAT_INTERVAL 1 * 1000; // 心跳间隔时间单位为毫秒 // const url ws://自己的地址/ws?token${token}bizUserType${1}; class WebSocketService {constructor() {this.wsTask null;this.lastPongTime Date.now();this.heartbeatTimer null;this.webSocketType true// 存储页面特定监听器this.pageListeners new Map(); this.initSocket();}initSocket() {var that thistoken uni.getStorageSync(token)this.wsTask uni.connectSocket({url: url,success: (res) {that.startHeartbeat();},fail: (err) {this.webSocketType falseconsole.log(err);}});// 监听 WebSocket 打开事件this.wsTask.onOpen(function(res) {});// 监听 WebSocket 接收到服务器消息事件this.wsTask.onMessage((res) {this.webSocketType trueif (res.data pong) {this.lastPongTime Date.now(); // 更新接收到 pong 的时间console.log(收到服务器的心跳响应--运营端111);} else {var obj JSON.parse(res.data)if (obj.type group-message-send) {var content JSON.parse(obj.content)}}// 调用所有页面特定监听器this.pageListeners.forEach((listener, pageId) listener(res));});// 监听 WebSocket 关闭事件this.wsTask.onClose((res) {console.log(WebSocket 已关闭:---运营端, res);that.closeWebSocket()this.webSocketType false});// 监听 WebSocket 错误事件this.wsTask.onError((err) {that.closeWebSocket()console.error(WebSocket 错误---运营端:, err);this.webSocketType false});}// 添加 页面监听addPageListener(pageId, listener) {if (!this.pageListeners.has(pageId)) {this.pageListeners.set(pageId, listener);}}// 移除某些页面的监听removePageListener(pageId) {if (this.pageListeners.has(pageId)) {this.pageListeners.delete(pageId);}}closeWebSocket() {this.webSocketType falseif (this.wsTask) {this.wsTask.close({success: () {console.log(WebSocket closed successfully);}});}}// 发送消息sendSocketMessage(msg) {this.wsTask.send({data: JSON.stringify(msg),success: () {this.webSocketType trueconsole.log(消息发送成功111---运营端);// uni.$off(message)},fail: (err) {this.webSocketType falseconsole.error(消息发送失败:---运营端, err);}});}// 发送心跳连接startHeartbeat() {if (this.heartbeatTimer) {clearInterval(this.heartbeatTimer); // 清除之前的定时器}this.lastPongTime Date.now(); // 记录上一次接收到 pong 的时间this.heartbeatTimer setInterval(() {this.sendHeartbeat();}, HEARTBEAT_INTERVAL);}reconnect() {this.wsTask.close();this.webSocketType falsesetTimeout(() {this.initSocket(); // 尝试重新初始化连接}, 500); // 等待5秒后重试}// 重新连接sendHeartbeat() {const currentTime Date.now();if (currentTime - this.lastPongTime HEARTBEAT_INTERVAL * 2) {console.warn(心跳超时重新连接...---运营端);this.reconnect();return;}this.wsTask.send({data: ping, // 发送 ping 消息success: () {this.webSocketType trueconsole.log(心跳消息发送成功---运营端);},fail: err {this.webSocketType falseconsole.error(心跳消息发送失败---运营端:, err);}});} }// 创建一个全局的 WebSocketService 实例 const webSocketService new WebSocketService();export default webSocketService; 在页面中使用  data pageId: Symbol(jiaohPageId), // 创建唯一标识符 pageListener: null, // 保存页面特定监听器 onShow生命周期调用 this.onMessageChange() 在  onHide 和 onUnload 中销毁 this.$webSocketService.removePageListener(this.pageId)  this.pageListener null; methods 方法 onMessageChange() {this.pageListener (res) {console.log(res, 页面进行监听1111);if (res.data ! pong res.data ! ping) {var obj JSON.parse(res.data)console.log(obj.type, );switch (obj.type) {case group-message-send:var content JSON.parse(obj.content)if (this.getUnreadNum 99) {this.getUnreadNum 99} else {this.getUnreadNum 1}break;case new-order:this.pageNo 1this.list []this.init()break;}}};this.$webSocketService.addPageListener(this.pageId, this.pageListener);},
http://www.w-s-a.com/news/32465/

相关文章:

  • 宿迁市住房城乡建设局网站wordpress纯图片主题
  • 广州建设网站 公司湖北省建设信息网官网
  • 网站建立时间查询做百度移动网站优化排
  • 网站建设和运行费用qq恢复官方网站
  • 可以免费建立网站吗免费的网络营销方式
  • 天津企业设计网站建设wordpress标题字体大小
  • 上高县城乡规划建设局网站创业项目
  • 钓鱼网站在线下载广州网站设计哪里好
  • 做阿里国际网站会有成效吗wordpress微博同步
  • 西安网站建设云速网络网站运营情况怎么写
  • 免费建网站的网站微信商城分销系统方案
  • 烟台网站seo服务友情链接有哪些展现形式
  • 什么是移动网站开发免费网站开发框架
  • 做网站 创业wordpress子菜单
  • 门户网站类型有哪些权重7以上的网站
  • 政务网站建设论文android app开发教程
  • 网站开发实训h5总结个人网站注册平台要多少钱
  • 空白网站建设wordpress高亮代码过长
  • 盐城 网站开发什么叫做门户网站
  • 广东快速做网站公司哪家好本地建wordpress
  • dedecms如何做网站贵阳seo计费管理
  • 企业网站设计一般多少钱呼和浩特最好的互联网公司
  • 黄浦专业做网站海南网站策划
  • 网站开发工程师有证书考试吗织梦cms是免费的吗
  • 电子商务网站建设需要学什么门户网站推广介绍方案
  • 网站里的专题页面wordpress查询数据库结构
  • WordPress子站站群网站建设代码生成器
  • 怎么攻击织梦网站甘肃省最新消息今天
  • 赣州哪里可以做网站看装修案例的网站
  • 旅游网站专业化建设的要点php 手机网站 模板