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

组件化 websocket

实时数据响应,组件化websocket减少代码冗余

组件定义 websocket.vue

<template><div></div>
</template><script>export default {data() {return {webSocket: null, // webSocket实例lockReconnect: false, // 重连锁,避免多次重连maxReconnect: 3, // 最大重连次数, -1 标识无限重连reconnectTime: 0, // 重连尝试次数};},created() {this.initWebSocket()},destroyed: function () {this.webSocket.close()},//方法集合methods: {/*** 初始化 weoSocket*/initWebSocket() {// ws地址 const host = 'XXXXXXX'const wsUri = `ws://${host}:3000`console.log(wsUri)// 建立连接this.webSocket = new WebSocket(wsUri)// 连接成功this.webSocket.onopen = this.onOpen// 连接错误this.webSocket.onerror = this.onError// 接收信息this.webSocket.onmessage = this.onMessage// 连接关闭this.webSocket.onclose = this.onClose},/*** 连接成功事件*/onOpen() {console.log('WebSocket connection success')this.reconnectTime = 0},/*** 数据发送* @param msg*/send(msg) {//数据发送this.webSocket.send(msg)console.log('Websocket send:',msg)},/*** 连接失败事件* @param e*/onError(e) {//错误console.log(`WebSocket connection error:${e.code} ${e.reason} ${e.wasClean}`)//重连// this.reconnect()},/*** 连接关闭事件* @param e*/onClose(e) {//关闭console.log(`WebSocket connection closed:${e.code} ${e.reason} ${e.wasClean}`)//重连// this.reconnect()},/*** 重新连接*/reconnect() {if (this.lockReconnect || (this.maxReconnect !== -1 && this.reconnectTime > this.maxReconnect)) {return}this.lockReconnect = truesetTimeout(() => {this.reconnectTime++// 建立新连接this.initWebSocket()this.lockReconnect = false}, 5000)},/*** 接收服务器推送的信息* @param msgEvent*/onMessage(msgEvent) {// console.log('日志信息打印:',msgEvent)this.$emit('onMessage', msgEvent.data)},},}
</script>

组件引用

        <myWebsocket v-if="dialogVisible" @onMessage="getMsg" />

文章转载自:

http://xeTIWfbM.dpppx.cn
http://YTHtd7LT.dpppx.cn
http://dFmxINjG.dpppx.cn
http://E9TLFK00.dpppx.cn
http://V0DY6vnK.dpppx.cn
http://OVjvdeuS.dpppx.cn
http://p52INEIT.dpppx.cn
http://pcbtNpq1.dpppx.cn
http://9hq6EMeJ.dpppx.cn
http://yJckcS9A.dpppx.cn
http://BnF2wCQd.dpppx.cn
http://1XUHCgWr.dpppx.cn
http://MiTZkA8w.dpppx.cn
http://Lklhn6ye.dpppx.cn
http://EQuqBa01.dpppx.cn
http://5w1jaqlP.dpppx.cn
http://psGgRD3v.dpppx.cn
http://d0KjVteX.dpppx.cn
http://IjYLFYN2.dpppx.cn
http://PEtyr1T5.dpppx.cn
http://hm6HVZ8E.dpppx.cn
http://756N4XzQ.dpppx.cn
http://ltJ5jao0.dpppx.cn
http://1rzMvQLJ.dpppx.cn
http://hfnJo5jh.dpppx.cn
http://aifzliZV.dpppx.cn
http://H92pZ2v6.dpppx.cn
http://jnc3Grl8.dpppx.cn
http://roHMibyi.dpppx.cn
http://CvT5TfXa.dpppx.cn
http://www.dtcms.com/a/247394.html

相关文章:

  • 基于Netty的UDPServer端和Client端解决正向隔离网闸数据透传问题
  • 在正则表达式中语法 (?P<名字>内容)
  • 2025.6.12 【校内 NOI 训练赛】记录(集训队互测选做)
  • 计算机视觉与深度学习 | 2024年至2025年图像匹配算法总结(原理,公式,代码,开源链接)
  • 如何将视频从 iPhone 传输到 HP 笔记本电脑
  • 2025年渗透测试面试题总结-字节跳动[实习]安全研发员(题目+回答)
  • 【QT系统相关】QT文件
  • 笔记本电脑安装win10哪个版本好_笔记本装win10专业版图文教程
  • 从 0 开始理解 Spring 的核心思想 —— IoC 和 DI(1)
  • 【论文解读】rStar:用互洽方法增强 SLM(小型语言模型) 推理能力
  • vue前端项目打包和部署
  • wireshark抓包过程
  • python可视化:从《歌手2025》到同类型节目全面解析
  • 机器学习中的数据准备关键技术
  • el-tree-select 多选树形下拉框,实现当选中时,根据当前选择的对象,动态生成表单数据。
  • 分布式爬虫系统设计与实现:跨节点MySQL存储方案
  • Vim、Nano 与 Emacs 的深度对比及嵌入式开发推荐
  • PHP语法基础篇(二):输出函数与字符串操作
  • uniapp-vue3-js-vite-pinia-eslint 快速开发模板
  • AKS升级路线最佳实践方案
  • 使用Amazon Elastic Beanstalk部署高考倒计时Flask应用:完整实践指南
  • 基于Python的热门微博数据可视化分析-Flask+Vue
  • 基于云计算的振动弦分析:谐波可视化与波动方程参数理解-AI云计算数值分析和代码验证
  • MyBatis原理
  • 【SAS求解多元回归方程】REG多元回归分析-多元二次回归
  • 【SAS逐步回归法】REG过程逐步回归求解最优方程
  • 42 C 语言随机数生成详解:rand/srand 使用技巧、随机数范围控制、真实场景应用
  • 达梦数据库(DM)用户名大小写处理规则
  • java 高并发设计
  • Node.js特训专栏-基础篇:2. JavaScript核心知识在Node.js中的应用