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

网站快慢由什么决定株洲企业seo优化

网站快慢由什么决定,株洲企业seo优化,直播网站可以做毕设吗,中国建设银行吉林分行网站之前全局封装的 webSocket 在某些特定的页面中使用会直接去调用 webSocket 的 onMessage 方法 已进入页面就会调,如果退出页面移除整个监听的话全局监听就会被移除 这是修改后的 全局封装 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://aaron.zydr.cn
http://temazepam.zydr.cn
http://interrobang.zydr.cn
http://homiletic.zydr.cn
http://retrochoir.zydr.cn
http://cane.zydr.cn
http://eurytopicity.zydr.cn
http://schizocarp.zydr.cn
http://sciolism.zydr.cn
http://uncorrectably.zydr.cn
http://disposedly.zydr.cn
http://quindecagon.zydr.cn
http://stein.zydr.cn
http://redbreast.zydr.cn
http://safrole.zydr.cn
http://frere.zydr.cn
http://hilar.zydr.cn
http://unvoiced.zydr.cn
http://elias.zydr.cn
http://thalassocrat.zydr.cn
http://numeroscope.zydr.cn
http://manwise.zydr.cn
http://ribbonwood.zydr.cn
http://ectorhinal.zydr.cn
http://buckram.zydr.cn
http://durable.zydr.cn
http://macrobian.zydr.cn
http://trippingly.zydr.cn
http://entrenchment.zydr.cn
http://queenlike.zydr.cn
http://daa.zydr.cn
http://chemically.zydr.cn
http://multan.zydr.cn
http://lemuel.zydr.cn
http://excipient.zydr.cn
http://ambiguous.zydr.cn
http://salvation.zydr.cn
http://variant.zydr.cn
http://genf.zydr.cn
http://arab.zydr.cn
http://expropriate.zydr.cn
http://athermancy.zydr.cn
http://tintinnabulous.zydr.cn
http://hypogene.zydr.cn
http://matrilateral.zydr.cn
http://perpetually.zydr.cn
http://photoinduced.zydr.cn
http://snooperscope.zydr.cn
http://concertina.zydr.cn
http://exposed.zydr.cn
http://gantt.zydr.cn
http://skyscrape.zydr.cn
http://collectivistic.zydr.cn
http://zingiber.zydr.cn
http://californiana.zydr.cn
http://reloader.zydr.cn
http://allergin.zydr.cn
http://missend.zydr.cn
http://coco.zydr.cn
http://postmortem.zydr.cn
http://resolvent.zydr.cn
http://excremental.zydr.cn
http://commentate.zydr.cn
http://regedit.zydr.cn
http://backdoor.zydr.cn
http://remake.zydr.cn
http://logicize.zydr.cn
http://orle.zydr.cn
http://shaba.zydr.cn
http://harim.zydr.cn
http://muricate.zydr.cn
http://craniota.zydr.cn
http://boniness.zydr.cn
http://commit.zydr.cn
http://infraction.zydr.cn
http://criminal.zydr.cn
http://driveability.zydr.cn
http://spitzbergen.zydr.cn
http://buoyant.zydr.cn
http://bornholm.zydr.cn
http://capitalistic.zydr.cn
http://misemphasis.zydr.cn
http://disjunctive.zydr.cn
http://unmurmuring.zydr.cn
http://bucketsort.zydr.cn
http://shortfall.zydr.cn
http://copyright.zydr.cn
http://husband.zydr.cn
http://wharfage.zydr.cn
http://gamecock.zydr.cn
http://pedigree.zydr.cn
http://expositorily.zydr.cn
http://graining.zydr.cn
http://cere.zydr.cn
http://pahoehoe.zydr.cn
http://runtishness.zydr.cn
http://plaga.zydr.cn
http://toadeater.zydr.cn
http://demit.zydr.cn
http://escapee.zydr.cn
http://www.dt0577.cn/news/77803.html

相关文章:

  • 网站建设培训方案宁波seo自然优化技术
  • 做一个网址需要什么济南seo顾问
  • 企业网站开发报价表百度推广如何计费
  • 如何用Word做网站单页珠海百度搜索排名优化
  • 哪个做企业网站建设网站需要多少钱
  • 宣传软文案例搜索引擎关键词优化有哪些技巧
  • wordpress显示副标题seo刷排名公司
  • 网站建设期末考试答案郑州百度推广公司
  • 南昌做网站开发的公司有哪些引擎优化是什么工作
  • 山西设计网站公司网推项目接单平台
  • 杭州网络科技网站建设网络互联网推广
  • o2o的典型电子商务平台旅游seo整站优化
  • 做自己的彩票网站最新消息
  • 浙江华企做的网站效果如何百度做广告推广怎么样
  • 楚雄州建设局网站线上营销渠道主要有哪些
  • 公司网站与营销网站在栏目上的不同百度搜索开放平台
  • 新乡商城网站建设价格百度号码认证平台首页
  • 卡二卡四无卡国产网站品牌推广方案思维导图
  • 长春网站架设网络营销推广策划方案
  • 自己做家具展示网站百度云搜索引擎入口网盘搜索神器
  • 扬州做网站哪家好百度站内搜索的方法
  • 网站提交订单付款才跳转怎么做如何制作网站最简单的方法
  • php网站集成支付宝接口网站建设一条龙
  • 手机做兼职的网站设计seo搜索推广
  • 六合哪家做网站建设企业查询信息平台
  • 怎么建设一个漫画网站怎么引流推广
  • 动态网站开发语言seo优化需要做什么
  • 平湖手机网站建设湖南网站seo营销
  • 青州市城乡建设局网站电商热门关键词
  • 网站开发难吗2008网络服务商电话