位置: IT常识 - 正文

一个简单的websocket hook(一个简单的web项目名称)

编辑:rootadmin
一个简单的 vue3 的 websocket hook. 有以下基础功能: 创建链接 失败重连 发送心跳包 import { ref } from "vue"; export interface WS_CONFIG { url: string; // ws链接地址 sendData?: Record ...

推荐整理分享一个简单的websocket hook(一个简单的web项目名称),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:一个简单的web的页面,一个简单的web代码,一个简单的web app要包含的内容清单,一个简单的web项目名称,一个简单的web项目例子,一个简单的web项目例子,一个简单的web作业,一个简单的web项目例子,内容如对您有帮助,希望把文章链接给更多的朋友!

一个简单的 vue3 的 websocket hook. 有以下基础功能:

创建链接失败重连发送心跳包import { ref } from "vue";export interface WS_CONFIG { url: string; // ws链接地址 sendData?: Record<string, any>; // 请求数据 reconnectSec?: number; // 请求异常重连间隔 needHeart?: boolean; // 是否需要心跳 heartSec?: number; // 心跳间隔 heartData?: unknown; // 心跳时发送的数据}export default function <T>({ url, sendData = {}, heartSec = 1000 * 30, needHeart = false, reconnectSec = 1000 * 30, heartData = "ping",}: WS_CONFIG) { // 响应数据 const wsData = ref<T | undefined>(); // 重试次数 const retryNumber = ref<number>(0); let socket: WebSocket | null = null; let heart_Interval: number | null = null; let lockConnect = false; let number = 0; // 创建链接 function connect() { // 重连之前,关闭上次的连接 if (socket) { socket.close(); } socket = new WebSocket(url); retryNumber.value = number++; // 连接成功回调 socket.onopen = () => { console.log(`${url} open event - ${new Date()}`); // 维持心跳 needHeart && heart(); // 清空重试次数 number = 0; retryNumber.value = 0; // 发送数据 socket?.send(JSON.stringify(sendData)); }; // 连接断开回调 socket.onclose = (e) => { console.log(`${new Date()}${url} close eventcode: ${e.code};reason: ${e.reason};isTrusted: ${e.isTrusted}; `); console.log(`reconnect - ${new Date()}`); // 进行重连 reconnect(); }; // 连接失败回调 socket.onerror = (e) => { console.log(`${url} error event`, e); // 进行重连 reconnect(); }; // 接收到数据 socket.onmessage = (e: MessageEvent<string>) => { const { data } = e; const _data = (typeof data === "string" ? JSON.parse(data) : data) as T; wsData.value = _data; }; } // 心跳函数,维持链接不断开 function heart() { clearHeart(); heart_Interval = setInterval(() => { socket?.send( typeof heartData === "string" ? heartData : JSON.stringify(heartData) ); }, heartSec); } // 断开心跳 function clearHeart() { heart_Interval && clearInterval(heart_Interval); } // 重连 function reconnect() { // 控制重连频率 if (lockConnect) { return; } lockConnect = true; // 清除心跳 clearHeart(); setTimeout(() => { lockConnect = false; connect(); }, reconnectSec); } connect(); // 关闭链接 function clearWS() { socket?.close(); clearHeart(); } return { wsData, retryNumber, clearWS, };}
本文链接地址:https://www.jiuchutong.com/zhishi/309246.html 转载请保留说明!

上一篇:电脑学习网解决方案:危险数据盘为windwos分区,为了你的数据安全,请手动挂载,本脚本不执行任何操作(网上学电脑哪个软件好)

下一篇:帝国cms导航怎么加nofollow(帝国cms导航站模板)

  • 增值税发票认证在哪里
  • 代扣代缴个人所得税手续费返还 增值税
  • 车辆消费税征税范围是什么
  • 非独立核算增值税在哪里交
  • 买的矿泉水可以烧开吗
  • 高新技术认定研发费用要求
  • 代办汽车过户手续
  • 税收的组成
  • 普通发票开折扣销售能冲减销售吗
  • 这个月只有进项没有销项
  • 权益净利率如何算
  • 购买办公用品账务处理
  • 一般纳税人核定征收增值税
  • 公司住宿费用记什么费用
  • 对外工程承包企业
  • 一般纳税人所有税率
  • 房租付款和发票有关系吗
  • apple取消支付方式
  • 什么是进项税和销项税
  • 消费税有减免政策吗
  • 非货币性资产交换和债务重组的区别
  • php中imagestring
  • 租入固定资产改良支出属于资本性支出吗
  • 诉讼费属于什么费用
  • 不跳槽怎么形容
  • 常用的绘图比例有哪些?
  • 论文导读怎么做
  • bootz命令
  • unix命令大全详解
  • 上市公司股票转让收入
  • 已经认证了的专利怎么办
  • 计提并缴纳个税分录
  • 公司进行清算
  • 退回发票金额是什么意思
  • 税控发票如何入账
  • Win2003系统下SQL Server 2008安装图解教程(详细图解)
  • sqlserver2008数据库备份和恢复步骤
  • 公司注销了,账务是不是可以销毁了
  • 施工企业老板名字
  • 研发费用加计扣除新税收政策2023
  • 实收资本没有实缴,财务报表里面怎么写
  • 外经证预缴的附加税税率
  • 电子发票服务平台怎么下载发票
  • 金税盘开完发票可以直接拔掉吗?
  • 设备丢失查找
  • 私营企业算固定收入吗
  • 删除一组数据中的指定数据
  • sql server 2008教程
  • win8任务管理器在哪
  • win10系统怎么手机投屏到电脑
  • ubuntu字体文件
  • linux命令ethtool
  • fedora gnome
  • 常见内存大小
  • windows7自动开机脚本文件
  • optimize error by column count
  • winnook.exe - winnook是什么进程
  • drivemgr.exe 病毒介绍
  • windows7怎
  • 华为nova7耳机怎么戴
  • es6新增的数据结构
  • 表单验证插件
  • cocos2dx3.0的label字体去描边
  • javascript正则匹配两个点
  • php滚动代码
  • c#程序例子
  • nodejs+ts
  • python中的命名规范
  • javascript如何绘制曲线
  • jquery选择父级元素
  • javascript常用语句
  • android常见问题及解决方法
  • 社保缴费电子回单在哪里截图
  • 护肤品关税税率
  • 泉州国税局网站首页
  • 地税局公务员工作内容
  • 创新税务稽查方案
  • 杭州电子税务局怎么添加办税员
  • 山西省网上营业执照申请官网?
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设