webSocket前端+webSocket封装

前端WebSocket 封装 我封装的这是需要启动项目就立即连接,所以我在封装的js中自调用了连接函数,在main.js中引入该js文件,看你们需求再自己稍微变动一下吧提示:以下是本篇文章正文内容,下面案例可供参考以上就是webSocket封装过程,不对的地方不用多多指教,哈哈哈哈。 阅读详情

一、websocket基础
二、websocket 封装
三、websocket 测试接通

一、websocket 基础

// WebSocket构造函数,创建WebSocket对象
let ws = new WebSocket('ws://localhost:8888')
// 连接成功后的回调函数
ws.onopen = function (params) {
  console.log('客户端连接成功')
  // 向服务器发送消息
  ws.send('hello')
};
// 从服务器接受到信息时的回调函数
ws.onmessage = function (e) {
  console.log('收到服务器响应', e.data)
};
// 连接关闭后的回调函数
ws.onclose = function(evt) {
  console.log("关闭客户端连接");
};

// 连接失败后的回调函数
ws.onerror = function (evt) {
  console.log("连接失败了");
};


// 监听窗口关闭事件,当窗口关闭时,主动去关闭websocket连接,防止连接还没断开就关闭窗口,这样服务端会抛异常。
window.onbeforeunload = function() {
    ws.close();
}

二、websocket 封装

class MyWebScoket {
  constructor(socketUrl) {
    // super(socketUrl);
    this.onopenFn = null
    this.oncloseFn = null
    this.onmessageFn = null
    this.onerrorFn = null
    this.socketUrl = socketUrl
    this.socket = null
    this.init()
  }

  init() {
    let self = this
    let timeStep = new Date().getTime();
    self.socket = new WebSocket(self.socketUrl + timeStep);
    self.socket.onopen = function (event) {
      if (self.onopenFn) {
        self.onopenFn(event)
      }
    }
    self.socket.onmessageFn = function (event) {
      console.log(event, '连接关闭')
      if (self.onmessageFn) {
        self.onmessageFn(event)
      }
    }
    self.socket.onerrorFn = function (event) {
      console.log(event, 'websocket通信发生错误')
      if (self.onerrorFn) {
        self.onerrorFn(event)
      }
    }
    self.socket.oncloseFn = function (event) {
      console.log(event, '处理业务')
      if (self.oncloseFn) {
        self.oncloseFn(event)
      }
    }
  }
  close() {
    this.socket.close()
  }
}

export default MyWebScoket

2.使用(vue)

  import websocket from "./websocket.js"

  setWebsocket(){
      this.socket = new MyWebScoket(socketUrl)//socketUrl请求的地址
      this.socket.onopenFn = this.onopen.bind(this)
      this.socket.oncloseFn = this.onclose .bind(this)
      this.socket.onmessageFn = this.onmessage .bind(this)
      this.socket.onerrorFn = this.onerror.bind(this)
    },
    onopen(event){
      //业务处理
    },
    onclose(event){
      //业务处理
    },
    onmessage(event){
      //业务处理
    },
    onerror(event){
      //业务处理
    },

三、websocket 测试接通

下载包:https://download.youkuaiyun.com/download/Web_Notes/88695650?spm=1001.2014.3001.5501

项目介绍:可以用来测试websocket接通后的效果,方便前端调整,就不用等后端接口了。
index.js为主要文件,运行命令为 node index.js

使用方法:
1.index.js 页面
在这里插入图片描述
2.index.html
在这里插入图片描述

3.浏览器打开index.html,打开控制台,如果能收到index.js发送的内容,就没问题了。
就把index.html里面websocket 请求的地址 复制到你其他需要使用的项目里,就可以接收websocket 进行调整处理了

WebSocket 封装完全指南:构建可靠的企业级实时通信 websocket封装 阅读详情

相关推荐

SpringBoot 整合 websocket (五)——前端封装补充

在上一篇文章里介绍了如果再前端进行websocket封装时,进行断网重连、心跳监测等,在最近梳理的时候发现在断网重连这块少考虑了一块,例如默认情况下,断网后前端会每隔3秒重新与服务器握手一次,共握手5次后就彻底断开,这在实际项目里就存在问题,例如实际需求中需要一旦超过握手总次数就执行新的功能,例如提示操作者或者将异常入库等。

半路凉亭 1011

websocket封装

websocket封装

weixin_43422861的博客 6188

SpringBoot 整合 websocket(三)——前端JS封装

前面两篇websocket的文章主要是讲的是springboot后端的开发,而前端这块还是用的原生状态下的代码,在实际应用中肯定是不会这样简单去写的,需要考虑到在不同项目中可以复用,以及可能在同一个项目里有多个功能都需要用到websocket ,那就更要考虑统一和复用了,否则每个程序员都按照自己的想法去写,后期维护将是一件很麻烦的事情,而且也无法保证程序的安全性。.........

半路凉亭 1550

封装websocket

本文将介绍两种不同的WebSocket客户端封装方法:使用函数封装和使用类封装。我们将分析它们的实现方式、特点和适用场景,以及如何根据项目需求选择合适的封装方式。

weixin_66591252的博客 1520

BEVFormer vs BEVFusion:5个关键差异点帮你选对环视感知方案

本文深入对比了自动驾驶领域两大主流环视感知方案BEVFormer与BEVFusion。BEVFormer作为纯视觉BEV感知的标杆,通过注意力机制隐式学习深度,成本较低;而BEVFusion作为多模态融合典范,融合激光雷达与摄像头数据,在性能、小目标检测及极端环境鲁棒性上优势显著。文章从计算效率、部署成本、数据依赖性等五个核心维度提供选型指南,帮助技术决策者根据自身算力预算与传感器配置做出明智选择。

weixin_29306011的博客 124

光斑大小控制【ZEMAX操作数】

在使用Zemax优化光学系统时,对成像的聚焦光斑大小进行限制,即弥散斑的大小; 一、RSCE(质心RMS光斑半径):二、RSCH(光线RMS光斑半径):

yh的博客 7870

前端WebSocket封装使用

1. utils里新建websocket.js。

贵林之恋的博客 670

免安装版Notepad++终极配置:右键菜单+图标美化+多文件批量处理(2024新版)

本文详细介绍了如何为免安装版Notepad++进行终极配置,包括右键菜单添加、图标美化以及多文件批量处理功能。通过注册表编辑和高级定制,用户可以在便携版中实现与安装版相同的功能体验,同时保持系统整洁。特别适合开发者、系统管理员和效率追求者使用。

nut55的博客 830

前端对WebSocket进行封装,并建立心跳监测

WebSocket 是一种在客户端和服务器之间进行全双工、双向通信的协议。它是基于 HTTP 协议,但通过升级(HTTP 升级请求)将连接转换为 WebSocket 协议,从而提供更高效的实时数据交换。

阿琰a_的博客 903

让 AI 学会“慢思考”:MCP Sequential Thinking 深度部署与使用指南

摘要: MCP Sequential Thinking 是一种让AI具备"慢思考"能力的技术,通过动态调整思维路径解决复杂问题。本文详细介绍了在Windows、macOS和Linux系统下的部署方法,包括环境准备、配置文件修改等步骤。该技术通过"产生想法-评估需求-修正路径"的循环机制,显著提升AI在代码设计、数学证明等复杂任务中的表现。文章还提供了验证安装方法、使用示例和常见问题解答,帮助开发者解锁AI的深层思考能力。(149字)

weixin_43236925的博客 1913

不到200块!手把手教你用ZYNQ7010和AD9363攒一台自己的开源SDR硬件(附BOM清单)

本文详细介绍了如何用不到200元的预算,基于ZYNQ7010 FPGA和AD9363射频芯片打造一台功能完备的开源SDR硬件平台。从核心组件选型、PCB设计到焊接调试,提供全流程实战指南,特别适合预算有限的硬件爱好者和创客群体探索无线通信世界。

weixin_26854829的博客 483

前端封装WebSocket

最近遇到的项目不少都要使用websocket,这儿我把它封装起来,使用起来非常简单。 1.首先在项目里面创建一个webSocketUtils.js的文件 let FarmWebSocket = function ({ url, sendMessage, webSocketBack, pingTimeout = 15000, pongTimeout = 10000, reconnectTimeout = 2000, pingMsg = 'heartbea

story_in_sh的博客 1033

Android 12.0 以太网和wifi共存的产品wifi优先级设置功能实现

在12.0的系统ROM定制化开发中,在对于一些有线网和wifi共存的产品中,由于某些产品的特殊要求首选使用wifi,而在原生 系统中以太网的优先级高于wifi的,所以就需要从优先级的设置来分析,实现设置优先级的相关功能实现

安卓兼职framework和app工程师的博客 944

前端基于WebSocket封装

1.无心跳,短开连接之后重新连。 class webSocketClass { constructor(name) { this.lockReconnect = false; this.localUrl = "ws://XXXXXX"; this.wsUrl = ""; this.globalCallback = null; this.userClose = false; this.createWebSocket(name); } createW

盼盼盼的博客 1365

Ultralytics 框架中predict 与 track 的区别

在 Ultralytics 框架中,predict 和 track 是两种不同的推理方法,分别用于目标检测(或分割、姿态估计)和目标跟踪任务。

浩瀚之水的专栏 1127

爆肝整理:微信公众号文章HTML编写完整规范,运营必备手册

微信公众号文章排版总是出错?📱 这份完整的HTML编写规范文档帮你彻底解决!文档包含所有支持的标签、CSS属性、实用代码模板和注意事项 📋,让你快速掌握微信文章的HTML编写技巧,告别第三方编辑器依赖 ✅

XiaoqiangClub的博客 2313

封装一套前端几乎通用的WebSocket代码

前言 对接过几次WebSocket连接,无论是在纯JavaScript、Vue亦或Uniapp等框架语言中使用,Socket代码流程基本上差不多。无非就是: 发起连接 发送数据(发送心跳等) 接收数据 关闭连接 断线重连 异常处理… 每次都需要重写比较麻烦,故封装一套大致流程的WebSocket代码,哪怕从纯JavaScript项目搬到Vue、Uniapp等框架中,也只需要做小部分修改即可。 具体实现 创建socket.js,代码如下: // 在Vue中使用,不需要可以去除以下引用 import Vue

多吉 5573

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

封装WebSocket组件,前端使用WebSocket Echo Test自己写实时的测试数据

你可以在需要使用 WebSocket 的 Vue 组件中引入并使用上面封装WebSocketService。这个文件将处理 WebSocket 的连接、消息发送和接收。,是一个提供 WebSocket 测试功能的平台。

weixin_48924995的博客 782

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

前端 webSocket 封装(开箱即用)

其他hooks或者组件调用方式。

Superoir的博客 265

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

2024年最新微信小程序 websocket 封装,阿里P7前端社招面试的经历

跳槽是每个人的职业生涯中都要经历的过程,不论你是搜索到的这篇文章还是无意中浏览到的这篇文章,希望你没有白白浪费停留在这里的时间,能给你接下来或者以后的笔试面试带来一些帮助。也许是互联网未来10年中最好的一年。但是如果你不真正的自己去尝试尝试,你永远不知道市面上的行情如何。这次找工作下来,我自身感觉市场并没有那么可怕,也拿到了几个大厂的offer。在此进行一个总结,给自己,也希望能帮助到需要的同学。

2401_84447262的博客 983

前端封装WebSocket工具n

【代码】前端封装WebSocket工具。

m0_47380857的博客 450

一个WebSocket的前端封装类

实现一个的自定义 WebSocket 类,用于建立与服务器的 WebSocket 连接,并提供了一系列方法来处理连接状态、发送和接收消息、自动重连等功能。该类可以方便地在前端项目中实现与服务器的实时通信。

专注GIS软件开发。 1112

前端WebSocket封装

WebSocket简易封装,用于简化WebSocket的使用过程,包括自动处理连接、消息收发、心跳检测、断线重连以及事件监听等功能,用于简化业务调用。此处以Vue3调用为例

张钦的博客 523

前端实现websocket类封装

随着Web应用程序的发展,越来越多的人开始利用Websocket技术来构建实时应用程序。Websocket是一种在客户端和服务器之间建立持久连接的协议。这种协议可以在一个单独的连接上实现双向通信。与HTTP请求-响应模型不同,Websocket允许服务器自主地向客户端发送数据。这种实时连接的能力使得Websocket在许多应用场景中得到了广泛的应用。Websocket技术的优点之一是减少了网络延迟。在传统的HTTP请求-响应模型中,客户端必须不断地向服务器发送请求以获取更新的数据。

weixin_42496466的博客 2424

websocket 发送给前端一个对象_前端WebSocket封装

场景1: 只有单个长链接,不要求保活class WebSocketClass {constructor() {this.instance = null;this.connect();}static getInstance() {if (!this.instance) {this.instance = new WebSocketClass();}return this.instance;}conne...

weixin_34972980的博客 649
上一篇: css border设置0.5px
下一篇: 大华监控前端实时预览(踩坑)
一个打工仔的笔记
博客等级 码龄6年 1904粉丝 154原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值