组件化 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://www.pswp.cn/web/83866.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IBMS集成系统3D可视化数字孪生管理平台介绍、搭建、运维

IBMS集成系统3D可视化数字孪生管理平台介绍、搭建、运维 IBMS集成系统3D可视化数字孪生管理平台是一种先进的智能建筑管理系统&#xff0c;通过数字孪生技术和3D可视化界面&#xff0c;实现对建筑设施的全方位、智能化管理。该平台整合了物联网(IoT)、大数据、人工智能和三维建…

湖北理元理律师事务所:债务重组中的技术赋能与法律边界

一、当法律遇上算法&#xff1a;还款模型的进化 传统债务协商依赖律师经验&#xff0c;如今通过技术工具可实现&#xff1a; 输入&#xff1a;用户收入/债务/必需支出 输出&#xff1a; 1. 法定可减免金额&#xff08;基于LPR与历史判例库&#xff09;&#xff1b; 2.…

对抗串扰的第一武器

痕量分离;长度平行度;stackup&#xff1a;有没有一个脱颖而出&#xff1f; 我已经有一段时间没有看到关于串扰的文章了&#xff0c;所以我决定借此机会为那些可能对为什么精通串扰的 PCB 设计人员和硬件工程师使用各种设计规则来控制串扰感兴趣的 PCB 设计社区中的人简要介绍一…

FastAPI:(11)SQL数据库

FastAPI&#xff1a;(11)SQL数据库 由于CSDN无法展示「渐构」的「#d&#xff0c;#e&#xff0c;#t&#xff0c;#c&#xff0c;#v&#xff0c;#a」标签&#xff0c;推荐访问我个人网站进行阅读&#xff1a;Hkini 「渐构展示」如下&#xff1a; #c 概述 文章内容概括 #mermaid…

“智眸·家联“项目开发(一)

嵌入式开发调试知识点总结&#xff08;含操作流程&#xff09; 我们今天解决问题的过程&#xff0c;就像是侦探破案&#xff0c;从最表面的线索&#xff08;网络不通&#xff09;开始&#xff0c;一步步深入&#xff0c;最终找到了案件的核心&#xff08;硬件不匹配&#xff0…

展开说说Android之Retrofit详解_使用篇

Retrofit是由Square公司开发的类型安全HTTP客户端框架&#xff0c;借助动态代理在运行时生成接口实现类&#xff0c;将注解转化为OkHttp请求配置&#xff1b;节省成本通过转换器(Gson/Moshi)自动序列化JSON/XML&#xff0c;内部处理网络请求在主线程返回报文。Retrofit 直译是封…

复古美学浅绿色文艺风格Lr调色教程,手机滤镜PS+Lightroom预设下载!

调色介绍 复古美学浅绿色文艺风格 Lr 调色&#xff0c;是基于 Adobe Lightroom&#xff08;Lr&#xff09;软件&#xff0c;为摄影作品赋予特定艺术氛围的调色方式。通过合理设置软件中的各项参数与工具&#xff0c;把照片调整为以浅绿色为主调&#xff0c;融合复古元素与文艺气…

力扣网C语言编程题:缺失的第一个正数第三种解题方法

一. 简介 前面文章学习了对该题目的两种解题思路&#xff0c;文章如下&#xff1a; 力扣网C语言编程题&#xff1a;缺失的第一个正数-CSDN博客 但是前面的实现上在空间复杂度上没有满足要求。本文学习一种在空间复杂度上为 O(1)的思路。 二. 力扣网C语言编程题&#xff1a;缺…

PyTorch 实现 MNIST 手写数字识别

PyTorch 实现 MNIST 手写数字识别 MNIST 是一个经典的手写数字数据集&#xff0c;包含 60000 张训练图像和 10000 张测试图像。使用 PyTorch 实现 MNIST 分类通常包括数据加载、模型构建、训练和评估几个部分。 数据加载与预处理 使用 torchvision 加载 MNIST 数据集&#x…

Python内存互斥与共享深度探索:从GIL到分布式内存的实战之旅

引言&#xff1a;并发编程的内存困局 在开发高性能Python应用时&#xff0c;我遭遇了这样的困境&#xff1a;多进程间需要共享百万级数据&#xff0c;而多线程间又需保证数据一致性。传统解决方案要么性能低下&#xff0c;要么引发竞态条件。本文将深入探讨Python内存互斥与共…

【Unity】使用 C# SerialPort 进行串口通信

索引 一、SerialPort串口通信二、使用SerialPort1.创建SerialPort对象&#xff0c;进行基本配置2.写入串口数据①.写入串口数据的方法②.封装数据 3.读取串口数据①.读取串口数据的方法②.解析数据 4.读取串口数据的时机①.DataReceived事件②.多线程接收数据 5.粘包问题处理 一…

如何写好单元测试:Mock 脱离数据库,告别 @SpringBootTest 的重型启动

如何写好单元测试&#xff1a;Mock 脱离数据库&#xff0c;告别 SpringBootTest 的重型启动 作者&#xff1a;Killian&#xff08;重庆&#xff09; — 欢迎各位架构猎头、技术布道者联系我&#xff0c;项目实战丰富&#xff0c;代码稳健&#xff0c;Mock测试爱好者。 技术栈&a…

【DNS】在 Windows 下修改 `hosts` 文件

在 Windows 下修改 hosts 文件&#xff0c;一般用于本地 DNS 覆盖。操作步骤如下&#xff08;以 Windows 10/11 为例&#xff09;&#xff1a; 1. 以管理员权限打开记事本 点击 开始 → 输入 “记事本”在“记事本”图标上右键 → 选择 以管理员身份运行 如果提示“是否允许此…

共享内存实现进程通信

目录 system V共享内存 共享内存示意图 共享内存函数 shmget函数 shmat函数 shmdt函数 shmctl函数 代码示例 shm头文件 构造函数 获取key值 创建者的构造方式 GetShmHelper 函数 GetShmUseCreate 函数 使用者的构造方式 GetShmForUse 函数 分离附加操作 DetachShm 函数 AttachS…

6月15日星期日早报简报微语报早读

6月15日星期日&#xff0c;农历五月二十&#xff0c;早报#微语早读。 1、证监会拟修订期货公司分类评价&#xff1a;明确扣分标准&#xff0c;优化加分标准&#xff1b; 2、国家考古遗址公园再添10家&#xff0c;全国已评定65家&#xff1b; 3、北京多所高校禁用罗马仕充电宝…

破解关键领域软件测试“三重难题”:安全、复杂性、保密性

在国家关键领域&#xff0c;软件系统正成为核心战斗力的一部分。相比通用软件&#xff0c;关键领域软件在 安全性、复杂性、实时性、保密性 等方面要求极高。如何保障安全合规前提下提升测试效率&#xff0c;确保系统稳定&#xff0c;已成为软件质量保障的核心挑战。 关键领域…

记录一次 Oracle DG 异常停库问题解决过程

记录一次 Oracle DG 异常停库问题解决过程 某医院有以下架构的双节点 Oracle 集群&#xff1a; 节点1:172.16.20.2 节点2:172.16.20.3 SCAN IP&#xff1a;172.16.20.1 DG&#xff1a;172.16.20.1206月12日&#xff0c;医院信息科用户反映无法连接 DG 服务器。 登录 DG 服务…

MySQL使用EXPLAIN命令查看SQL的执行计划

1‌、EXPLAIN 的语法 MySQL 中的 EXPLAIN 命令是用于分析 SQL 查询执行计划的关键工具,它能帮助开发者理解查询的执行方式并找出性能瓶颈‌‌。 语法格式: EXPLAIN <sql语句> 【示例】查询学生表关联班级表的执行计划。 (1)创建班级信息表和学生信息表,并创建索…

Go语言2个协程交替打印

WaitGroup 无缓冲channel waitgroup 用来控制2个协程 Add() 、Done()、Wait() channel用来实现信号的传递和信号的打印 ch1: 用来记录打印的信号 ch2:用来实现信号的传递&#xff0c;实现2个协程的顺序打印 package mainimport ("fmt""sync" )func ma…

微信小程序 路由跳转

路由方式 官方参考文档 wx.switchTab 实现底部导航栏 1.配置信息 app.json"tabBar": {"custom": true,"list": [{"pagePath": "pages/home/index","text": "首页"},{"pagePath": "p…