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

北京市城乡建设委员会网站网站google搜索优化

北京市城乡建设委员会网站,网站google搜索优化,wordpress 分類,我想网上做网站文章目录 一. 目标二. 前置环境三. 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` 结尾。(比如 `useUserStore`,`useCartStore`,`useProductStore`)
// 第一个参数是你的应用中 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:7531'const 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.ds6.com.cn/news/1703.html

相关文章:

  • 谁有学做网站论坛账号三门峡网站seo
  • 免费网站建设空间电脑优化系统的软件哪个好
  • 怎么给别人做网站网站海外推广是做什么的
  • 网站排名易下拉排名兰州网络推广的平台
  • wordpress导航固定网络网站推广选择乐云seo
  • 做网站建设小程序如何进行搜索引擎优化
  • 广州 做网站发布软文广告
  • wordpress多重搜索引擎优化的内部优化
  • 天津做网站公司哪家好安徽网站推广优化
  • 柳州团购网站建设微营销推广平台有哪些
  • 天津做淘宝网站seo点击排名软件哪里好
  • 福州高端建站谷歌seo 外贸建站
  • 男生女生做污事网站 localhost合肥seo报价
  • 素材网站的素材可以商用吗正规的代运营公司
  • 找人做网站安全吗徐州seo外包公司
  • 湘潭优化公司南宁关键词优化服务
  • 互动广告机网站建设seo自学
  • 竭诚网络网站建设什么是关键词推广
  • 政府网站考评 集约化建设百度平台电话
  • 免费建站网站 seo如何成为百度广告代理商
  • 东莞企业营销型网站建设免费站推广网站不用下载
  • 策划与设计一个电子商务网站seo岗位
  • 苏州新区网站制作公司网络营销推广技巧
  • 网站开发的职业技术方面青岛网站推广系统
  • 怎么注册一个属于自己的网站注册网站平台
  • wordpress情侣网站源码六年级下册数学优化设计答案
  • 免费下载asp.net4.0动态网站开发基础教程营销计划
  • 网站怎么才能被搜到站长工具seo综合查询权重
  • 医院网站和公众号建设方案网络广告是什么
  • 服务一流的做网站郑州seo技术