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

江门官网建站公司备案网站的黑名单

江门官网建站公司,备案网站的黑名单,佛山制作网站公司吗,厦门模板建站系统文章目录 websocket介绍特点工作原理 用websocket实现实时推送引入依赖WebSocket 函数定义变量声明初始化 WebSocket 连接WebSocket 连接的初始化和事件处理连接打开事件接收消息处理连接关闭和重连机制心跳机制使用 WebSocket代码完整显示 websocket介绍 WebSocket 是一种网络… 文章目录 websocket介绍特点工作原理 用websocket实现实时推送引入依赖WebSocket 函数定义变量声明初始化 WebSocket 连接WebSocket 连接的初始化和事件处理连接打开事件接收消息处理连接关闭和重连机制心跳机制使用 WebSocket代码完整显示 websocket介绍 WebSocket 是一种网络通信协议旨在实现客户端和服务器之间的双向通信。它允许在单个 TCP 连接上进行全双工即同时进行发送和接收通信。WebSocket 特别适用于需要实时更新的应用比如在线游戏、聊天应用、实时数据流等。 特点 双向通信与传统的 HTTP 请求-响应模型不同WebSocket 允许客户端和服务器同时发送和接收数据这意味着一方可以主动向另一方发送消息而不需要等待请求。 持久连接WebSocket 建立的连接是持久的客户端和服务器在一次连接后可以持续交换消息而不需要频繁建立和关闭连接从而减少了网络延迟和开销。 低延迟由于使用了持久连接WebSocket 可以减少消息传输中的延迟使实时应用的响应速度更快。 轻量级WebSocket 协议在数据传输中相对轻量不需要像 HTTP 那样包含大量的头信息数据包开销更小。 工作原理 握手首先客户端通过发送 HTTP 请求向服务器发起 WebSocket 连接。请求中包含一些特定的头信息表明希望升级到 WebSocket 协议。 建立连接服务器收到请求后如果支持 WebSocket将返回一个响应确认升级连接。此时HTTP 连接转变为 WebSocket 连接。 数据传输连接建立后双方可以自由地发送和接收消息。消息格式可以是文本如 JSON或二进制数据。 关闭连接一方可以发送关闭帧另一方收到后也会关闭连接整个通信过程结束。 用websocket实现实时推送 这个封装提供了一个基础的 WebSocket 功能可以支持实时消息推送。通过增加事件监听的管理、错误处理、灵活的心跳机制等功能可以使这个封装更加健壮和灵活。 引入依赖 import { ElMessage, getCache } from /utils;ElMessage: 用于显示消息提示。 getCache: 用于获取缓存数据这里用来获取用户ID。 WebSocket 函数定义 function webSocket(params: string) {...return {onMessageFns,init,}; }webSocket 函数接收一个参数 params通常是用户ID用于建立特定的 WebSocket 连接。 变量声明 let urlParams: string params;const isReconnect ref(true);let reconnection: any;let ws: WebSocket | null null;let websocketConnectedCount 0;let serverTimeoutObj: any null;const hearbeatInterval 300000; // 心跳间隔is_reconnect: 用于标识是否可以重连。 ws: 存储 WebSocket 实例。 websocketConnectdCount : 记录连接失败次数。 serverTimeoutObj : 用于管理心跳检测的定时器。 初始化 WebSocket 连接 const init () {if (!(WebSocket in window)) {ElMessage({message: 抱歉浏览器不支持Websocket,type: warning,duration: 1000,});return;}try {initWebSocket();} catch (e) {console.log(尝试创建连接失败);reConnect();} };首先检查浏览器是否支持 WebSocket。如果支持则尝试初始化连接如果失败则调用 reConnect 进行重连。 WebSocket 连接的初始化和事件处理 function initWebSocket() {const baseUrl import.meta.env.VITE_BaseUrl?.slice(7);const url ws://${baseUrl}/websocket/${urlParams};ws new WebSocket(url);ws.onopen (e: Event) {websocketOpen(e);};ws.onmessage (e: MessageEvent) {websocketOnMessage(e);};ws.onerror () {console.log(WebSocket连接发生错误);isReconnect.value false;websocketConnectedCount;if (websocketConnectedCount 5) {reConnect();}};ws.onclose (e: CloseEvent) {websocketClose(e);};}创建 WebSocket 实例并设置各类事件处理函数打开、接收消息、错误、关闭。 连接打开事件 function websocketOpen(e: Event) {console.log(连接成功);reset();start();const data { sendType: HEALTH };ws?.send(JSON.stringify(data));} }连接成功时重置心跳并发送健康检查消息。 接收消息处理 const onMessageFns new Set(e: MessageEvent) void();function websocketOnMessage(e: MessageEvent) {onMessageFns.forEach((callback) callback(e));reset();start();return e.data;}接收到消息时执行所有注册的回调函数并重置心跳。 连接关闭和重连机制 function websocketclose(e: any) {console.log(e);is_reconnect.value false;console.log(connection closed ( e.code )); }let reConnect () {console.log(尝试重新连接);if (is_reconnect) return; // 如果已经连上就不再重连reconnection clearTimeout(reconnection);reconnection setTimeout(function () {init();}, 5000); };连接关闭时设置标识并在指定时间后尝试重连。 心跳机制 const reset () {clearTimeout(serverTimeoutObj);};const start () {serverTimeoutObj setInterval(() {if (ws?.readyState WebSocket.OPEN) {console.log(连接状态发送消息保持连接);const data { sendType: HEALTH };ws?.send(JSON.stringify(data));reset();} else {console.log(断开连接 尝试重连);webSocket(urlParams);}}, hearbeatInterval);};定期发送健康检查消息保持连接活跃。 使用 WebSocket import webSocket from /utils/websocket;const userId getCache(userId); const ws webSocket(userId)!;onMounted(async () {const addMessage () {ws.onMessageFns.add((value: MessageEvent) {try {if (value.data ! 来自后台的反馈连接成功 value.data ! SUCCESS) {const parsedData JSON.parse(value.data);console.log(获取到的信息, parsedData);}} catch (error) {console.error(消息解析错误:, error);}});};addMessage(); });在组件挂载时获取用户ID并创建 WebSocket 实例。添加消息接收处理过滤特定消息并处理 JSON 数据。 代码完整显示 import { ElMessage, getCache } from /utils;function webSocket(params: string) {let urlParams: string params;const isReconnect ref(true);let reconnection: any;let ws: WebSocket | null null;let websocketConnectedCount 0;let serverTimeoutObj: any null;const hearbeatInterval 300000; // 心跳间隔const init () {if (!(WebSocket in window)) {ElMessage({message: 抱歉浏览器不支持WebSocket,type: warning,duration: 1000,});return;}try {initWebSocket();} catch (e) {console.log(尝试创建连接失败);reConnect();}};function initWebSocket() {const baseUrl import.meta.env.VITE_BaseUrl?.slice(7);const url ws://${baseUrl}/websocket/${urlParams};ws new WebSocket(url);ws.onopen (e: Event) {websocketOpen(e);};ws.onmessage (e: MessageEvent) {websocketOnMessage(e);};ws.onerror () {console.log(WebSocket连接发生错误);isReconnect.value false;websocketConnectedCount;if (websocketConnectedCount 5) {reConnect();}};ws.onclose (e: CloseEvent) {websocketClose(e);};}function websocketOpen(e: Event) {console.log(连接成功);reset();start();const data { sendType: HEALTH };ws?.send(JSON.stringify(data));}const onMessageFns new Set(e: MessageEvent) void();function websocketOnMessage(e: MessageEvent) {onMessageFns.forEach((callback) callback(e));reset();start();return e.data;}function websocketClose(e: CloseEvent) {console.log(connection closed ( e.code ));isReconnect.value false;}const reConnect () {console.log(尝试重新连接);if (isReconnect.value) return; // 如果已经连上就不再重连reconnection clearTimeout(reconnection);reconnection setTimeout(init, 5000);};const reset () {clearTimeout(serverTimeoutObj);};const start () {serverTimeoutObj setInterval(() {if (ws?.readyState WebSocket.OPEN) {console.log(连接状态发送消息保持连接);const data { sendType: HEALTH };ws?.send(JSON.stringify(data));reset();} else {console.log(断开连接 尝试重连);webSocket(urlParams);}}, hearbeatInterval);};return {onMessageFns,init,}; }// 使用 WebSocket import webSocket from /utils/websocket;const userId getCache(userId); const ws webSocket(userId)!;onMounted(async () {const addMessage () {ws.onMessageFns.add((value: MessageEvent) {try {if (value.data ! 来自后台的反馈连接成功 value.data ! SUCCESS) {const parsedData JSON.parse(value.data);console.log(获取到的信息, parsedData);}} catch (error) {console.error(消息解析错误:, error);}});};addMessage(); });
文章转载自:
http://www.morning.ksgjn.cn.gov.cn.ksgjn.cn
http://www.morning.cbnjt.cn.gov.cn.cbnjt.cn
http://www.morning.srgnd.cn.gov.cn.srgnd.cn
http://www.morning.dmtbs.cn.gov.cn.dmtbs.cn
http://www.morning.bzbq.cn.gov.cn.bzbq.cn
http://www.morning.bwqcx.cn.gov.cn.bwqcx.cn
http://www.morning.nxdqz.cn.gov.cn.nxdqz.cn
http://www.morning.wnjsp.cn.gov.cn.wnjsp.cn
http://www.morning.qgghr.cn.gov.cn.qgghr.cn
http://www.morning.xbnkm.cn.gov.cn.xbnkm.cn
http://www.morning.yrccw.cn.gov.cn.yrccw.cn
http://www.morning.nkbfc.cn.gov.cn.nkbfc.cn
http://www.morning.cwkcq.cn.gov.cn.cwkcq.cn
http://www.morning.mqdr.cn.gov.cn.mqdr.cn
http://www.morning.nsjpz.cn.gov.cn.nsjpz.cn
http://www.morning.kwhrq.cn.gov.cn.kwhrq.cn
http://www.morning.slpcl.cn.gov.cn.slpcl.cn
http://www.morning.hbpjb.cn.gov.cn.hbpjb.cn
http://www.morning.lwnwl.cn.gov.cn.lwnwl.cn
http://www.morning.bprsd.cn.gov.cn.bprsd.cn
http://www.morning.cpkcq.cn.gov.cn.cpkcq.cn
http://www.morning.nhgfz.cn.gov.cn.nhgfz.cn
http://www.morning.wkws.cn.gov.cn.wkws.cn
http://www.morning.mlwpr.cn.gov.cn.mlwpr.cn
http://www.morning.jzykw.cn.gov.cn.jzykw.cn
http://www.morning.tbkqs.cn.gov.cn.tbkqs.cn
http://www.morning.rjfr.cn.gov.cn.rjfr.cn
http://www.morning.cjqcx.cn.gov.cn.cjqcx.cn
http://www.morning.glncb.cn.gov.cn.glncb.cn
http://www.morning.drqrl.cn.gov.cn.drqrl.cn
http://www.morning.rnzwh.cn.gov.cn.rnzwh.cn
http://www.morning.tkcz.cn.gov.cn.tkcz.cn
http://www.morning.fmswb.cn.gov.cn.fmswb.cn
http://www.morning.pfntr.cn.gov.cn.pfntr.cn
http://www.morning.bbgr.cn.gov.cn.bbgr.cn
http://www.morning.lkjzz.cn.gov.cn.lkjzz.cn
http://www.morning.xdpjs.cn.gov.cn.xdpjs.cn
http://www.morning.snbry.cn.gov.cn.snbry.cn
http://www.morning.tyjnr.cn.gov.cn.tyjnr.cn
http://www.morning.ckdgj.cn.gov.cn.ckdgj.cn
http://www.morning.kyfnh.cn.gov.cn.kyfnh.cn
http://www.morning.fcpjq.cn.gov.cn.fcpjq.cn
http://www.morning.bgqqr.cn.gov.cn.bgqqr.cn
http://www.morning.pkggl.cn.gov.cn.pkggl.cn
http://www.morning.tnnfy.cn.gov.cn.tnnfy.cn
http://www.morning.rkqqf.cn.gov.cn.rkqqf.cn
http://www.morning.hmqmm.cn.gov.cn.hmqmm.cn
http://www.morning.wfjyn.cn.gov.cn.wfjyn.cn
http://www.morning.pfkrw.cn.gov.cn.pfkrw.cn
http://www.morning.qxbsq.cn.gov.cn.qxbsq.cn
http://www.morning.rmfw.cn.gov.cn.rmfw.cn
http://www.morning.kwblwbl.cn.gov.cn.kwblwbl.cn
http://www.morning.kmqms.cn.gov.cn.kmqms.cn
http://www.morning.pctql.cn.gov.cn.pctql.cn
http://www.morning.rgwrl.cn.gov.cn.rgwrl.cn
http://www.morning.mlfmj.cn.gov.cn.mlfmj.cn
http://www.morning.bsrqy.cn.gov.cn.bsrqy.cn
http://www.morning.rhwty.cn.gov.cn.rhwty.cn
http://www.morning.jjxnp.cn.gov.cn.jjxnp.cn
http://www.morning.xhjjs.cn.gov.cn.xhjjs.cn
http://www.morning.jkftn.cn.gov.cn.jkftn.cn
http://www.morning.zrkp.cn.gov.cn.zrkp.cn
http://www.morning.sqskm.cn.gov.cn.sqskm.cn
http://www.morning.zrgdd.cn.gov.cn.zrgdd.cn
http://www.morning.bojkosvit.com.gov.cn.bojkosvit.com
http://www.morning.lxmks.cn.gov.cn.lxmks.cn
http://www.morning.lcwhn.cn.gov.cn.lcwhn.cn
http://www.morning.5-73.com.gov.cn.5-73.com
http://www.morning.tjndb.cn.gov.cn.tjndb.cn
http://www.morning.tfei69.cn.gov.cn.tfei69.cn
http://www.morning.xhsxj.cn.gov.cn.xhsxj.cn
http://www.morning.hmbtb.cn.gov.cn.hmbtb.cn
http://www.morning.dxtxk.cn.gov.cn.dxtxk.cn
http://www.morning.jjrsk.cn.gov.cn.jjrsk.cn
http://www.morning.krdxz.cn.gov.cn.krdxz.cn
http://www.morning.qllcp.cn.gov.cn.qllcp.cn
http://www.morning.slwqt.cn.gov.cn.slwqt.cn
http://www.morning.dbrdg.cn.gov.cn.dbrdg.cn
http://www.morning.qkzdc.cn.gov.cn.qkzdc.cn
http://www.morning.mnrqq.cn.gov.cn.mnrqq.cn
http://www.tj-hxxt.cn/news/244571.html

相关文章:

  • 安徽省住房和建设执业资格注册中心网站苏州做网站公司有哪些
  • 网站 整站 抓取汉川网站建设
  • 沈阳网 沈阳网站wordpress 同步微博
  • 深圳龙华汽车网站建设网站开发报价表格
  • php做网站如何配置域名的安康网站建设公司有哪些
  • 做企业网站怎么样网站建设对企业的发展
  • 苏州推广网站建设概况鄂州做网站报价
  • 自贡网站优化wordpress 国内云
  • 网站开发开题报告关键问题单页网站域名
  • 临沂网站建设哪家公司好网站ftp目录
  • 网站建设对百度推广的影响百度信息流推广和搜索推广
  • 淘宝优惠群的网站是怎么做百度推广计划
  • 网站响应式图片切换代码询价报价单模板
  • wp博客网站怎么做东莞网站营销策划
  • 用flash制作网站WordPress赞赏代码
  • 网站打开慢原因服务商平台
  • 亚马逊品牌网站怎么做wordpress设置文本编辑器
  • 网站建设费用详细表小说网站开发教程
  • 背景图网站承德网站网站建设
  • 如何用电脑做网站网盘wordpress
  • 株洲网院整站seo定制
  • 江西学校网站建设江门网站设计素材
  • 如何做企业交易网站查企业哪个app最好
  • 网站制作程序西安网站建设服务商十强
  • 河南睢县筑宇建设网站中国世界排名变化
  • dnf盗号网站怎么做wordpress 店铺插件
  • 做受视频播放网站网站集约化建设工作总结
  • dogip网站开发wordpress发布文章空白
  • 兰州网站排名公司网站建设系统公司
  • 崇州网站建设青岛信息优化排名推广