Vue3封装全局WebSocket;全局可监听、可发送、心跳处理等;

这篇具有很好参考价值的文章主要介绍了Vue3封装全局WebSocket;全局可监听、可发送、心跳处理等;。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

操作如下

可以在多个页面多个组件中进行监听/发送 代码简介 方便;

首先安装 tools-javascript 以及 tools-vue3
npm i tools-vue3
npm i tools-javascript 
import { WebSocketBean } from 'tools-vue3' 
export default class WSUtil {
    static ws: WebSocketBean
    static async init() { 
        this.ws = new WebSocketBean({
            url: '你的地址',
            needReconnect: true,
            reconnectGapTime: 3000,
            onerror: () => { // 接收到错误
                CEvent.emit('getData','断开的~消息是从这里来的哦~')
            }, 
            sendSuffix:'',
            messageSuffix: '',
            heartSend: '44444444444~',
            heartGet: '44444444444444444~',
            heartGapTime: 3000,
            onmessage: (data) => { // 接收到消息
                CEvent.emit('getData',sp)
            }
        })
        //建立连接
        this.ws.start()
    }
}

根据你的业务需求初始化 ws

// 从你业务需求的文件引入该方法后调用
WSUtil.init()  

在你的任何文件中直接调用即可

	// 监听消息 getData 相当于KEY值 与 接收到的消息/错误 统一即可
	const listenID = CEvent.on("getData",(data)=>{
		//在onmessage触发后,这里应该打印test字符串 
		console.log('home1',data)
	})
	// 页面销毁记得清除监听器
	onDeactivated(()=>{
        // 销毁
        CEvent.off(listenID)
	})

附加篇(也可不读 直接看文档 )文章来源地址https://www.toymoban.com/news/detail-679313.html

 /**
  *发送数据
  * @param data 数据对象,Object、Array、String
  */
	WSUtil.send
	
 /**
  * 销毁需要重发的数据信息
  * @param sendId
  */
  WSUtil.offsend
 /**
  * 关闭socket,销毁绑定事件、心跳事件、窗口关闭事件,修改状态为已关闭
  */
  WSUtil.close
  
// ws连接状态
export enum WebSocketStatusEnum {
    /**
     * 创建中
     */
    load,
    /**
     * 已连接
     */
    open,
    /**
     * 已关闭
     */
    close
}

到了这里,关于Vue3封装全局WebSocket;全局可监听、可发送、心跳处理等;的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue3+vite的axios的封装与全局使用

    1.安装axios 使用npm 或 yarn 安装axios到项目中 // 使用pnpm 安装   pnpm install axios // 使用npm 安装   npm install axios // 使用yarn 安装  yarn add axios axios是一个基于Promise的HTTP请求库,支持Promise API、可以拦截请求和响应、可以转换请求和响应数据、支持取消请求、可以自动转换JSON数据

    2024年02月02日
    浏览(50)
  • 基于Vue3封装一个好用的Websocket

    在Vue3中使用Websocket可以让我们轻松地实现实时数据传输。为了方便使用,我们可以封装一个好用的Websocket类。 首先我们需要安装 ws 库来处理Websocket连接,使用以下命令进行安装: 我们可以新建一个 websocket.js 文件,在其中定义一个 Websocket 类,代码如下: 以上代码中,我们

    2024年02月04日
    浏览(77)
  • websocket前端封装代码,心跳机制断线重连

    websocket是一种全双工通信长链接,大多用来实现及时通讯,数据实时性要求较为高的地方,在websoket未出现的时候前端使用的setInterval轮训进行数据更新的,在那些对于数据实时性要求不高地方我们仍可以使用 轮训。 (1)建立在 TCP 协议之上,服务器端的实现比较容易。 (

    2024年02月11日
    浏览(36)
  • Flutter:WebSocket封装-实现心跳、重连机制

    前言Permalink Flutter简介 Flutter 是 Google推出并开源的移动应用开发框架,主打跨平台、高保真、高性能。开发者可以通过 Dart语言开发 App,一套代码同时运行在 iOS 和 Android平台。 Flutter提供了丰富的组件、接口,开发者可以很快地为 Flutter添加 native扩展。同时 Flutter还使用 Nat

    2024年02月10日
    浏览(38)
  • Vue3+element-ui + TS封装全局分页组件

    本文介绍了如何使用Vue3、element-ui和TypeScript封装一个全局分页组件。 在开始之前,你需要安装以下环境: Vue3 element-ui TypeScript 这个分页组件提供以下功能: 支持自定义每页显示条数 支持自定义跳转到指定页码 支持显示总页数和总条数 支持自定义样式 分页组件结构 分页组

    2024年02月12日
    浏览(51)
  • vue3使用websocket简易封装,包含错误重连机制

    websocket实现的全双工通信,真真太香了,以下是笔者在使用时,自己封装的一个简易js工具。若需要源码,请移步这里 笔者这里会重连3次,重连的过程给与用户提示,3次之后会提示用户手动刷新 这里与后端约定的数据返回,加上type作为接口判断依据,因此这里不一定通用。

    2024年02月11日
    浏览(33)
  • ai问答:vue3+pinia+WebSocket 封装断线重连(实战)

    把 Socket 实例 挂载到全局 为方便梳理,请忽略 typescript ,一切尽在注释中 Socket封装(断线重连) 这个 WebSocket 类封装了 WebSocket 的连接、重连、发送数据等方法。 在 connect 方法中,它会连接 WebSocket ,并绑定相关事件监听。 在 onclose 事件中,它会调用 reconnect 方法进行重连。 recon

    2024年02月03日
    浏览(43)
  • vue设置全局webSocket,并在对应页面接受消息通知处理

    最近项目中有用到了webSocket,然后在收到消息之后需要在不同的页面进行处理。所有就需要在不同的页面监听并进行对应的消息处理。 首先,在app.vue中添加socket初始化,并设置发送消息,接收消息和心跳检测的处理。 其中:在接收到消息之后需要自定一个监听事件,来供页

    2024年02月11日
    浏览(39)
  • vue3-pc端生成微信二维码、扫码支付监听支付回调(WebSocket)功能实现

    项目场景:后台系统中采购订单列表需要支持微信扫描支付功能,支付成功需要返回到订单列表。 调用接口接收后端返回数据, npm install qrcode --save 安装插件,处理返回数据生成二维码。 1. 后端接口返回数据如下: 2. 前端代码如下: 3. 效果图如下: 生成二维码功能到这就完

    2024年02月12日
    浏览(30)
  • uni-app vue3 封装socket 兼容微信小程序 钉钉小程序 H5 App 全局唯一

    前端小伙伴使用uni-app开发长连接通信的时候都会有以下疑问 在网上搜到的封装socket都没讲怎么全局公用一个呢? 同一个 子协议或者我我们叫type类型型我想在两个页面都接受使用怎么做呢? 目前能搜到的socket 封装好像都没讲清楚这个东西,或者压根没考虑 下面给大家详细

    2024年02月13日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包