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

sse实时通信

使用原因:用户网络环境较差,之前使用ws总是出现断连重连,导致数据总是不能实时更新,所以更换为sse

npm install event-source-polyfill

createWebSocket:创建sse连接 

getWebSocketMsg:接收sse消息

  import { EventSourcePolyfill } from "event-source-polyfill";import { getToken } from '@/utils/auth'class webSocketClass {constructor(name) {this.localUrl = `http`; //直连阿里云正式环境this.globalCallback = null;this.createWebSocket(name);this.readyState = 0;}createWebSocket(url) {var that =this// 建立连接this.eventSource = new EventSourcePolyfill(this.localUrl+ url,{// 设置重连时间heartbeatTimeout: 60 * 60 * 1000,// 添加tokenheaders: {Authorization: `Bearer ${getToken()}`,},});this.eventSource.onopen = (e) => {console.log("已建立SSE连接~");};this.eventSource.onmessage = (e) => {const d = JSON.parse(e.data);console.log("sse已接受到消息:", d);that.getWebSocketMsg(that.globalCallback);};this.eventSource.onerror = (e) => {console.log("SSE连接错误" + e.readyState);if (e.readyState == EventSource.CLOSED) {console.log("SSE连接关闭");} else if (this.eventSource.readyState == EventSource.CONNECTING) {console.log("SSE正在重连");//重新设置tokenthis.eventSource.headers = {Authorization: `Bearer ${getToken()}`,};} else {console.log("error", e);}};}getWebSocketMsg(callback) {console.log("开始接收sse消息~",this.eventSource);this.eventSource.onmessage = (ev) => {callback && callback(ev);};}close(){this.eventSource.close()console.log("SSE关闭" + e.readyState);}
}
export default webSocketClass;

使用方法:

  this.warningSSE = new vueSSEUtil('/sse/warning/'+this.userId);this.warningSSE.getWebSocketMsg((evt) => {const d = JSON.parse(evt.data);d.warnCode = this.code_to_value(d.warnCode);console.log('sse回调数据',d) });

一定要在页面退出关闭sse

this.warningSSE.close()

相关文章:

sse实时通信

使用原因:用户网络环境较差,之前使用ws总是出现断连重连,导致数据总是不能实时更新,所以更换为sse npm install event-source-polyfill createWebSocket:创建sse连接 getWebSocketMsg:接收sse消息 impo…...

Qt专栏3—Qt项目创建Hello World

setp1 打开软件 双击Qt Creator 11.0.3 (Community),打进入软件界面 step2 创建项目 点击创建项目 step3 选择模板 选着Application(Qt)->Qt Widgets Application setp4 设置项目 名称中填入项目号名,创建路径中填入项目保存位…...

linux输出的重定向无效问题和解决

我们在调试程序或者打印日志时经常会遇到重定向的问题,而有时候会遇到重定向无效的问题,下面给一个简单的例子,首先写一个简单的test.c #include <stdio.h>int main(){fprintf(stdout, "hello\n");fprintf(stderr, "world\n");return 0; }编译生…...

chromium114添加新的语言国际化支持

一、需求说明 需要chromium114支持新语言体系,例如藏语,蒙古语,苗语等 二、操作步骤 1. build/config/locales.gni修改 在all_chrome_locales变量中添加新的语种标识,如下图。 2. 添加编译文件,告诉浏览器在编译时需要加载和输出那些文件 尝试编译出现错误一提示。需要…...

赛氪荣幸受邀参与中国联合国采购促进会第五次会员代表大会

11 月21 日 &#xff08;星期二&#xff09; 下午14:00&#xff0c;在北京市朝阳区定福庄东街1号中国传媒大学&#xff0c;赛氪荣幸参与中国联合国采购促进会第五次会员代表大会。 2022年以来&#xff0c;联合国采购杯全国大学生英语大赛已经走上了国际舞台&#xff0c;共有来自…...

车载通信架构 —— 传统车内通信网络发展回顾

车载通信架构 —— 传统车内通信网络发展回顾 我是穿拖鞋的汉子&#xff0c;魔都中坚持长期主义的汽车电子工程师。 老规矩&#xff0c;分享一段喜欢的文字&#xff0c;避免自己成为高知识低文化的工程师&#xff1a; 屏蔽力是信息过载时代一个人的特殊竞争力&#xff0c;任何…...

`maven.test.skip` 和 `skipTests` 的区别

maven.test.skip 和 skipTests 的区别 -DskipTests&#xff0c;不执行测试用例&#xff0c;但编译测试用例类生成相应的class文件至target/test-classes下。 -Dmaven.test.skiptrue&#xff0c;不执行测试用例&#xff0c;也不编译测试用例类。...

linux输出的重定无效问题和解决

我们在调试程序或者打印日志时经常会遇到重定向的问题,而有时候会遇到重定向无效的问题,下面给一个简单的例子,首先写一个简单的test.c #include <stdio.h>int main(){fprintf(stdout, "hello\n");fprintf(stderr, "world\n");return 0; }编译生…...

开发上门按摩系统对技师如何管理,薪资结构怎么设计

开发完上门按摩系统平台上线之后&#xff0c;对技师的管理和薪资结构是非常重要的环节&#xff0c;关乎着平台的服务能力和服务质量&#xff0c;那么应该如何去管理和设计薪资结构呢 首先说技师管理&#xff1a; 一、培训和认证&#xff1a;平台应对技师进行全面的培训&#xf…...

云HIS系统源码,医院管理系信息统源码,融合B/S版四级电子病历系统

医院管理信息系统是以推进公共卫生、医疗、医保、药品、财务监管信息化建设为着力点&#xff0c;整合资源&#xff0c;加强信息标准化和公共服务信息平台建设&#xff0c;逐步实现统一高效、互联互通的管理系统。 SaaS模式Java版云HIS系统&#xff0c;在公立二甲医院应用三年…...

Redis篇---第十篇

系列文章目录 文章目录 系列文章目录前言一、怎么提高缓存命中率&#xff1f;二、Redis 如何解决 key 冲突&#xff1f;三、Redis 报内存不足怎么处理&#xff1f; 前言 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分…...

(vue)前后端配合实现文件预览功能

(vue)前后端配合实现文件预览功能 1.页面&#xff1a; 2.后台返回数据&#xff1a; 3.预览效果&#xff1a; 4.代码&#xff1a; <el-descriptions-item><template slot"label">文件名称</template><el-button type"text" click"…...

.NET 6 在已知拓扑路径的情况下使用 Dijkstra,A*算法搜索最短路径

📢欢迎点赞 :👍 收藏 ⭐留言 📝 如有错误敬请指正,赐人玫瑰,手留余香!📢本文作者:由webmote 原创📢作者格言:新的征程,我们面对的不仅仅是技术还有人心,人心不可测,海水不可量,唯有技术,才是深沉黑夜中的一座闪烁的灯塔 !背景介绍 突然闯到路径搜索算法里…...

SQL Server删除重复数据只保留一条

介绍 最近在导入数据库数据, 有时候给的数据源文件,存在重复数据, 需要清除但是还需要保留一条记录的需求. 本文将介绍如何使用SQL Server来实现这个需求。 流程 下面是实现删除重复数据的流程&#xff0c;我们可以用表格展示每个步骤&#xff1a; 步骤 描述 步骤一 先…...

如何使用 WPF 应用程序连接 FastReport报表

随着期待已久的FastReport WPF的发布&#xff0c;您不再需要使用 FastReport .NET 来处理基于 WPF 的项目。 不久前&#xff0c;在 FastReport .NET 中使用 WPF 还相当不方便。并非一切都进展顺利&#xff1b;连接 FastReport.dll 和许多其他问题存在问题。我们重新思考了该方…...

【Django使用】4大模块50页md文档,第4篇:Django请求与响应和cookie与session

当你考虑开发现代化、高效且可扩展的网站和Web应用时&#xff0c;Django是一个强大的选择。Django是一个流行的开源Python Web框架&#xff0c;它提供了一个坚实的基础&#xff0c;帮助开发者快速构建功能丰富且高度定制的Web应用 Django全套笔记地址&#xff1a; 请移步这里 …...

uniapp - 开关按钮

目录 1.运行代码如下&#xff1a; 2.运行效果 3.switch属性 1.运行代码如下&#xff1a; <template><view class"switchBox"><switch change"switchChange" color"#F21177" :checked"form.checked" /></view&…...

使用sql语句获取SQL server库里所有表的表名,注释,行数

select * from (SELECT t.name,schema_id, SCHEMA_NAME(schema_id).t.name AS 表名, c.value AS 注释 FROM sys.tables AS t LEFT JOIN sys.extended_properties AS c ON c.major_id t.object_id AND c.minor_id 0 AND c.name MS_Description ) ss left j…...

D-Wave推出新开源及解决无线信道解码新方案!

​&#xff08;图片来源&#xff1a;网络&#xff09; 加拿大量子计算机公司D-Wave&#xff08;纽约证券交易所股票代码&#xff1a;QBTS&#xff09;是量子计算系统、软件和服务领域的佼佼者&#xff0c;也是全球首家商业量子计算机供应商。 近期&#xff0c;该公司发布了一…...

JavaScrip获取视频第一帧作为封面图

在JavaScript中&#xff0c;你可以使用HTML5的<video>元素来加载视频&#xff0c;然后使用Canvas来捕获视频的第一帧作为封面图。以下是一个简单的例子&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8&qu…...

2025届必备的五大降AI率助手横评

Ai论文网站排名&#xff08;开题报告、文献综述、降aigc率、降重综合对比&#xff09; TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 如今人工智能生成内容越来越普遍&#xff0c;在此情形下&#xff0c;好多平台针对AI写作的检…...

基于电液耦合转向铰接列车的换道轨迹规划及跟踪【附代码】

✅ 博主简介&#xff1a;擅长数据搜集与处理、建模仿真、程序设计、仿真代码、论文写作与指导&#xff0c;毕业论文、期刊论文经验交流。 ✅ 如需沟通交流&#xff0c;扫描文章底部二维码。&#xff08;1&#xff09;电液耦合转向系统动力学建模与ADRC主动转角控制&#xff1a;…...

开源智能体集市:Lobe Chat Agents 项目解析与实战指南

1. 项目概述&#xff1a;一个开源的智能体集市如果你最近在折腾AI应用&#xff0c;尤其是想找一个能快速上手、功能强大且社区活跃的智能体&#xff08;Agent&#xff09;集合&#xff0c;那么“lobehub/lobe-chat-agents”这个项目绝对值得你花时间深入研究。简单来说&#xf…...

NanoPi R6C评测:RK3588S迷你主机的性能与散热优化

1. NanoPi R6C硬件解析&#xff1a;一款重新定义紧凑型ARM主机的设计革新初次拿到NanoPi R6C时&#xff0c;其全金属外壳带来的质感远超我的预期。这款由FriendlyElec推出的迷你主机&#xff0c;搭载了Rockchip RK3588S SoC&#xff0c;尺寸仅比普通路由器稍大&#xff0c;却完…...

五级地址解析是什么?为什么比四级多了行政村

你有没有遇到过这种情况&#xff1f;做物流分单&#xff0c;地址只解析到街道级别&#xff0c;但一个街道下面可能有十几个社区&#xff0c;分单不够精细&#xff1b;做政务数据统计&#xff0c;想按行政村/社区维度汇总&#xff0c;但地址库只有省市区街道四级&#xff0c;缺了…...

[特殊字符] 躺着把文章写了:如何通过 AI 结构化工程“制造”高质量内容@围巾哥萧尘[特殊字符][特殊字符] 躺着把文章写了:如何通过 AI

&#x1f680; 躺着把文章写了&#xff1a;如何通过 AI 结构化工程“制造”高质量内容围巾哥萧尘&#x1f9e3;1. 反常识&#xff1a;写作不是天赋&#xff0c;是工程很多人认为&#xff0c;写出一篇好文章需要过人的天赋、神来之笔的灵感&#xff0c;或者是数小时的苦思冥想。…...

别再手动写Cron了!用Furion的ScheduleUI可视化管理和调试你的.NET定时任务

告别硬编码&#xff1a;用Furion的ScheduleUI重塑.NET定时任务管理体验 在.NET生态中&#xff0c;定时任务管理长期处于"石器时代"——开发者不得不通过繁琐的代码配置和XML文件定义任务&#xff0c;每次修改都需要重新编译部署。这种开发模式不仅效率低下&#xff…...

三分钟看懂缠论:通达信自动分析插件让复杂理论秒变实战工具

三分钟看懂缠论&#xff1a;通达信自动分析插件让复杂理论秒变实战工具 【免费下载链接】ChanlunX 缠中说禅炒股缠论可视化插件 项目地址: https://gitcode.com/gh_mirrors/ch/ChanlunX 还在为缠论复杂的笔段划分和中枢识别头疼吗&#xff1f;ChanlunX缠论可视化插件将改…...

掌握AI教材生成技巧!低查重工具助你轻松编写专业教材

传统教材编写困境与 AI 解决方案 编写教材的过程离不开充足的资料支持&#xff0c;但传统的资料整合方式早已无法满足需求。过去&#xff0c;从教材标准、学术文献到教学实例&#xff0c;相关信息散布在知网、教研平台等多个渠道&#xff0c;筛选出有用的信息往往需要耗费几天…...

如何通过构建 AI 智能体找到工作

我也许应该把这篇文章叫作"2026年如何真正通过构建AI Agent找到工作"&#xff0c;因为本文会偏向生产系统。大多数教程教你构建一个聊天机器人&#xff0c;然后就……停了。没有部署。没有记忆。没有防护栏。也没提当你的"Agent"产生幻觉&#xff0c;告诉客…...