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

网站建设书生商友宁波关键词排名优化

网站建设书生商友,宁波关键词排名优化,沈阳做网站 熊掌号,做网站需要什么专业文章目录 一. 目标二. 前置环境三. websocket通用模板 一. 目标 先有实时数据需要展示. 由于设备量极大且要对设备参数实时记录展示.axios空轮询不太适合. 选择websocket长连接通讯. 使用pinia原因是pinia具备共享数据性质.可以作为消息队列缓存数据,降低渲染压力.同时方便多… 文章目录 一. 目标二. 前置环境三. websocket通用模板 一. 目标 先有实时数据需要展示. 由于设备量极大且要对设备参数实时记录展示.axios空轮询不太适合. 选择websocket长连接通讯. 使用pinia原因是pinia具备共享数据性质.可以作为消息队列缓存数据,降低渲染压力.同时方便多个页面或组件获取websocket数据 二. 前置环境 安装pinia 注册pinia不再详细叙述,自行看官方文档. npm install pinia 三. websocket通用模板 笔者自行整合网络资源,写了一套较为通用的通信模板. 包含 消息队列缓存, 心跳检测, 断线重连.读者可以自行阅读以下代码调整到业务所需.同时也请大家捉虫,笔者会及时修改. import {defineStore} from pinia; import {ref} from vue;// 你可以对 defineStore() 的返回值进行任意命名但最好使用 store 的名字同时以 use 开头且以 Store 结尾。(比如 useUserStoreuseCartStoreuseProductStore) // 第一个参数是你的应用中 Store 的唯一 ID。 export const useWebSocketStore defineStore(resource, {// 其他配置...state: () ({// 这里是你的状态socket: null,messageQueue: [],readyState: 0,socketMessage:1}),getters: {// 这里是你的 gettersSET_SOCKET: (state: any, socket: any) {state.socket socket;},SET_SOCKET_MESSAGE: (state: any, socketMessage: any) {state.socketMessage socketMessage;}},actions: {// 这里是你的 actionsconnectWebSocket() {const PING_INTERVAL 5000; // 心跳间隔单位为毫秒const heartbeatMessage {type:0, msg:ping}; // 心跳消息const heartbeatMessage2 {type:0, msg:pong, data:[在线设备]}; // 心跳消息const HOST_ADDRESS ws://127.0.0.1:7531const socket ref(new WebSocket(HOST_ADDRESS))let checkTask null// 监听连接事件socket.value.onopen () {// 启动心跳检测 确保连接存活 客户端每隔5秒向服务端发送一次心跳消息console.log(heartbeatMessage)checkTask setInterval(() {socket.value.send(JSON.stringify(heartbeatMessage))}, PING_INTERVAL)}// 监听消息事件socket.value.onmessage (event) {console.log(event.data,event2)const message JSON.parse(event.data)if (message.type WebSocket.CONNECTING) {socket.value.send(JSON.stringify(heartbeatMessage2))return} else {console.log(WebSocket消息: , message)this.SET_SOCKET_MESSAGE(message)}}// 监听关闭事件 断线重连socket.value.onclose () {if(this.socket.readyState WebSocket.CLOSED) {this.messageQueue.forEach((message) {this.sendMessage(message)});this.messageQueue []}// 清除心跳计时器checkTask clearInterval(checkTask)// 断线重连setTimeout(() {this.connectWebSocket()},3000)}// 连接错误socket.value.onerror (event) {console.log(WebSocket error:, event)}},// 发送消息方法sendMessage(message: string) {this.socket.send(message)}}})
http://www.eeditor.cn/news/122532/

相关文章:

  • 网站反向链接学校网站建设 应用情况
  • 国外创意摄影网站vps服务器的iis网站
  • 网站抓取诊断ip出错苏州seo网站公司
  • 服务器放多个网站自己做一个app
  • 网站建设静态部分实训总结沈阳三好街附近做网站
  • 上饶建设局网站购物网站建设款流程
  • 七台河网站网站建设wordpress的模板目录在哪里
  • 个人网站欣赏的网站简要说明网站制作的基本步骤
  • 做网站 建站saas建站平台
  • 小型网站建设价格低里水网站开发
  • 舟山网站开发免费设计企业logo
  • 手机网站做安卓客户端网站建设推广公司哪家权威
  • 东莞网站建设 烤活鱼桂林做手机网站设计
  • wordpress迁站到阿里云人才网网站开发手册
  • 雅安公司做网站wordpress 优势
  • dede 网站改宽屏代码seo 优化一般包括哪些内容
  • 网站建设一定要买数据盘吗设计做的网站哪些好
  • ps做网站首页规范尺寸腾讯云一键wordpress
  • 鞍山做网站比较好的公司酒泉网站建设公司
  • 广州网站建设智能 乐云践新织梦手机网站
  • 网站建设实训总结及体会微信网站建设教程
  • 网站开发微信支付详细教程昆山建设工程安监站网站
  • 西宁网站制作费用是多少动感网站模板
  • 描述网站开发的广告词西安哪里有做网站的
  • 六盘水网站设计做摄影的网站知乎
  • 网站开发一个多少钱啊如何做seo
  • 交通网站建设方案青海省住房和城乡建设厅的官方网站
  • 网站建设需求报价明细常熟市住房和城乡建设部网站
  • 门户网站要求wordpress 段落 两格
  • 浙江网站建设上市公司网站建设服务公司宣传语言