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

web前端sse封装

这是一个基于@microsoft/fetch-event-source包封装的sse函数,包含开始、停止功能; 可传更多参数、使用非常简单。

使用前: 

        安装 @microsoft/fetch-event-source

代码:


// sse
import { fetchEventSource } from '@microsoft/fetch-event-source'
import { getUserJWTtoken } from '@/utils/auth' // 引入你自己的Authorization// 参数处理
const factory = (options) => ((options.method = options.method || 'POST'),(options.headers = options.headers || {'Content-Type': 'application/json',Authorization: getUserJWTtoken(),}),(options.body = options.body || {}),options
)
let controller = null
// 参数处理
export default function () {return {// 开始ssestart: async (url, options = {}, callback) => {try {if (!url) {console.log('请输入有效url')return}controller = new AbortController()const signal = controller.signalawait fetchEventSource(url, {signal: signal,...factory(options),openWhenHidden: true,onmessage(event) {callback({ status: 'running', message: event })},onerror(error) {throw error // 必须抛出错误,否则停止不了},onclose(msg) {callback({ status: 'finish', message: '读取结束' })},})} catch (error) {callback({ status: 'error', message: error })}},// 停止ssestop: () => {controller?.abort()},}
}

使用:

<template><a-button @click="startSSE">开始sse</a-button><a-button @click="stopSSE">停止sse</a-button>
</template><script setup>
import sseHook from "./sse";const sse = sseHook();const startSSE = () => {const params = {params1: "params1",params2: "params2",params3: "params3"};/*三个参数1. url 你的sse对应的后端接口2. params 你的入参 必须是json字符串3. 回调函数(运行状态, 返回信息)*/sse.start(url, { body: JSON.stringify(params) }, ({ status, message }) => {console.og(status, message);});
};const stopSSE = () => {sse.stop();
};
</script>

相关文章:

web前端sse封装

这是一个基于microsoft/fetch-event-source包封装的sse函数&#xff0c;包含开始、停止功能; 可传更多参数、使用非常简单。 使用前: 安装 microsoft/fetch-event-source 代码&#xff1a; // sse import { fetchEventSource } from microsoft/fetch-event-source import { …...

智能家居WTR096-16S录放音芯片方案,实现语音播报提示及录音留言功能

前言&#xff1a; 在当今社会的高速运转之下&#xff0c;夜幕低垂之时&#xff0c;许多辛勤工作的父母尚未归家。对于肩负家庭责任的他们而言&#xff0c;确保孩童按时用餐与居家安全成为心头大事。此时&#xff0c;家居留言录音提示功能应运而生&#xff0c;恰似家中的一位无形…...

【创建模式-蓝本模式(Prototype Pattern)】

目录 Overview应用场景代码演示JDK Prototype pattern 更优实践泛型克隆接口 https://doc.hutool.cn/pages/Cloneable/#%E6%B3%9B%E5%9E%8B%E5%85%8B%E9%9A%86%E7%B1%BB The prototype pattern is a creational design pattern in software development. It is used when the t…...

Spring Boot应用开发深度解析与实战案例

Spring Boot应用开发深度解析与实战案例 在当今快速发展的软件开发领域,Spring Boot凭借其“约定优于配置”的理念,极大地简化了Java应用的开发、配置和部署过程,成为了微服务架构下不可或缺的技术选型。本文将深入探讨Spring Boot的核心特性、最佳实践,并通过一个具体的…...

优化Go语言中的网络连接:设置代理超时参数

网络连接优化的重要性 在分布式系统和微服务架构中&#xff0c;网络请求的效率直接影响到整个系统的响应速度。合理的超时设置可以防止系统在等待网络响应时陷入无限期的阻塞&#xff0c;从而提高系统的吞吐量和用户体验。特别是在使用代理服务器时&#xff0c;由于增加了网络…...

《神经网络与深度学习》(邱锡鹏) 内容概要【不含数学推导】

第1章 绪论 基本概念&#xff1a;介绍了人工智能的发展历程及不同阶段的特点&#xff0c;如符号主义、连接主义、行为主义等。还阐述了深度学习在人工智能领域的重要地位和发展现状&#xff0c;以及其在图像、语音、自然语言处理等多个领域的成功应用。术语解释 人工智能&…...

原创 传奇996_55——后端如何点击npc隐藏主界面

点击图片退出&#xff0c;举例&#xff1a; |linkexit Img|ax0.5|ay0.5|percentx50|percenty50|imgpublic/touming2.png|hideMain1|linkexit <Img|x0|y0|esc1|show4|bg1|move0|imgcustom/new/longhun/bg.png|loadDelay0|reset1|hideMain1>...

RabbitMQ中的Work Queues模式

在现代分布式系统中&#xff0c;消息队列&#xff08;Message Queue&#xff09;是实现异步通信和解耦系统的关键组件之一。RabbitMQ 是一个广泛使用的开源消息代理软件&#xff0c;支持多种消息传递模式。其中&#xff0c;Work Queues&#xff08;工作队列&#xff09;模式是一…...

GESP202412 四级【Recamán】题解(AC)

》》》点我查看「视频」详解》》》 [GESP202412 四级] Recamn 题目描述 小杨最近发现了有趣的 Recamn 数列&#xff0c;这个数列是这样生成的&#xff1a; 数列的第一项 a 1 a_1 a1​ 是 1 1 1&#xff1b;如果 a k − 1 − k a_{k-1}-k ak−1​−k 是正整数并且没有在数…...

蓝桥杯新年题解 | 第15届蓝桥杯迎新篇

蓝桥杯新年题解 | 第15届蓝桥杯迎新篇 2024年的蓝桥杯即将拉开序幕&#xff01;对于许多编程爱好者来说&#xff0c;这不仅是一次展示自我能力的舞台&#xff0c;更是一次学习和成长的机会。作为一名大一新生的小蓝&#xff0c;对蓝桥杯充满了期待&#xff0c;但面对初次参赛的…...

3D 生成重建035-DiffRF直接生成nerf

3D 生成重建035-DiffRF直接生成nerf 文章目录 0 论文工作1 论文方法2 实验结果 0 论文工作 本文提出了一种基于渲染引导的三维辐射场扩散新方法DiffRF&#xff0c;用于高质量的三维辐射场合成。现有的方法通常难以生成具有细致纹理和几何细节的三维模型&#xff0c;并且容易出…...

@SpringBootTest 报错: UnsatisfiedDependencyException

Spring Boot Test 报错: UnsatisfiedDependencyException 在使用 SpringBootTest 测试时&#xff0c;出现 UnsatisfiedDependencyException 报错&#xff0c;原因和解决方法如下。 报错原因分析 1. Spring 存在涉及 Bean 没有被添加 Spring Boot 测试中&#xff0c;默认会加…...

mysql、postgresql、oceanbase调优

一、mysql 1、my.cnf [mysqld_safe] log-error=/data/mysql/log/mysql.log pid-file=/data/mysql/run/mysqld.pid[client] socket=/data/mysql/run/mysql.sock default-character-set=utf8[mysqld] basedir=/usr/local/mysql tmpdir=/data/mysql/tmp datadir=/data/mysql/dat…...

MySQL 数据库事务实践

引言 在现代应用程序开发中&#xff0c;确保数据库操作的完整性和一致性至关重要。MySQL 提供了强大的事务管理功能&#xff0c;允许开发者以原子性、一致性、隔离性和持久性&#xff08;ACID&#xff09;的方式处理数据。本文将通过详细的解释和实际示例&#xff0c;带你深入…...

VScode、Windsurf、Cursor 中 R 语言相关快捷键设置

前言 在生物信息学数据分析中&#xff0c;R语言是一个不可或缺的工具。为了提高R语言编程效率&#xff0c;合理设置快捷键显得尤为重要。本文介绍在VSCode Windsurf Cursor 中一些实用的R语言快捷键设置&#xff0c;让非 Rstudio 的 IDE 用起来得心应手&#x1f611; 操作种…...

tcpdump编译

https://github.com/westes/flex/releases/download/v2.6.4/flex-2.6.4.tar.gz tar -zxvf flex-2.6.4.tar.gz ./configure CFLAGS-D_GNU_SOURCE make sudo make installwget http://ftp.gnu.org/gnu/bison/bison-3.2.1.tar.gz ./configure make sudo make install以上两个库是…...

Linux下禁止root远程登录访问

开始讲故事 Long long ago&#xff0c; Linux远程访问方式有telnet、ssh两种协议&#xff1b;有人可能还会说vnc和rdp协议方式&#xff0c;后面这两种主要是可视化桌面场景下的&#xff0c;并非主流。 时过境迁&#xff0c;telnet因安全性低逐渐被禁用淘汰&#xff0c;最后就…...

算法刷题Day16: BM41 输出二叉树的右视图

题目链接 描述 思路&#xff1a; 递归构造二叉树在Day15有讲到。复习一下&#xff0c;就是使用递归构建左右子树。将中序和前序一分为二。 接下来是找出每一层的最右边的节点&#xff0c;可以利用队列层次遍历。 利用队列长度记录当前层有多少个节点&#xff0c;每次从队列里…...

登录授权的实现:json web token + redis + springboot

文章目录 引言I token实现思路传统JWT TOKEN认证方式改进的JWT TOKEN认证方式redis设计II java代码实现登录接口退出登录接口登录之后接口(token解析和校验)III 常见问题400引言 应用场景: 登录认证 I token实现思路 传统JWT TOKEN认证方式 RESTful API TOKEN认证方式:…...

yolov,coco,voc标记的睡岗检测数据集,可识别在桌子上趴着睡,埋头睡觉,座椅上靠着睡,平躺着睡等多种睡姿的检测,6549张图片

yolov&#xff0c;coco,voc标记的睡岗检测数据集&#xff0c;可识别在桌子上趴着睡&#xff0c;埋头睡觉&#xff0c;座椅上靠着睡&#xff0c;平躺着睡等多种睡姿的检测&#xff0c;6549张图片 数据集分割 6549总图像数 训练组91&#xff05; 5949图片 有效集9&#x…...

数据库表的CRUD

SQL语句&#xff08;Structured Query Language&#xff09;是用于与关系型数据库进行交互的语言。下面是几个常用的SQL语句&#xff1a; 创建表&#xff1a; CREATE TABLE table_name ( column1 datatype, column2 datatype, column3 datatype, ... ); 插入数据&#xff1a; …...

Proxy与Reflect

监听对象操作 在Object中&#xff0c;可以通过defineProperty中的get&#xff0c;set进行监听&#xff0c; Proxy基本使用 有两个参数&#xff0c;第一个是要代理的对象&#xff0c;第二个是捕获器&#xff0c;在不知道捕获器使用哪个之前可以先传个空对象。就会启用默认的捕获…...

【安卓开发】【Android Studio】启动时报错“Unable to access Android SDK add-on list”

一、问题描述 在启动Android Studio时&#xff0c;软件报错&#xff1a;Unable to access Android SDK add-on list&#xff0c;报错截图如下&#xff1a; 二、原因及解决方法 初步推测是由于网络节点延迟&#xff0c;无法接入谷歌导致的。点击Cancel取消即可。...

【C语言篇】C 语言总复习(下):点亮编程思维,穿越代码的浩瀚星河

我的个人主页 我的专栏&#xff1a;C语言&#xff0c;希望能帮助到大家&#xff01;&#xff01;&#xff01;点赞❤ 收藏❤ 在C语言的世界里&#xff0c;结构体和联合体以及文件操作都是非常重要且实用的知识板块&#xff0c;掌握它们能帮助我们更高效地组织数据以及与外部文…...

AI技术架构:从基础设施到应用

人工智能&#xff08;AI&#xff09;的发展&#xff0c;正以前所未有的速度重塑我们的世界。了解AI技术架构&#xff0c;不仅能帮助我们看懂 AI 的底层逻辑&#xff0c;还能掌握其对各行业变革的潜力与方向。 一、基础设施层&#xff1a;AI 技术的坚实地基 基础设施层是 AI 技…...

centos7的yum镜像源设置

sudo yum repolist 查看镜像源连接情况&#xff0c;not found即为连接失败 sudo cp -r /etc/yum.repos.d /etc/yum.repos.d.backup 备份镜像源文件 sudo nano /etc/yum.repos.d/CentOS-Base.repo 进入镜像源文件编辑内容 # CentOS-Base.repo # # The mirror system uses the…...

Qt6开发自签名证书的https代理服务器

目标&#xff1a;制作一个具备类似Fiddler、Burpsuit、Wireshark的https协议代理抓包功能&#xff0c;但是集成到自己的app内&#xff0c;这样无需修改系统代理设置&#xff0c;使用QWebengineview通过自建的代理服务器&#xff0c;即可实现https包的实时监测、注入等自定义功能…...

HarmonyOS:多线程并发-Worker

Worker主要作用是为应用程序提供一个多线程的运行环境&#xff0c;可满足应用程序在执行过程中与宿主线程分离&#xff0c;在后台线程中运行一个脚本进行耗时操作&#xff0c;极大避免类似于计算密集型或高延迟的任务阻塞宿主线程的运行。具体接口信息及使用方法详情请见Worker…...

小程序IOS安全区域优化:safe-area-inset-bottom

ios下边有一个小黑线&#xff0c;位于底部的元素会被黑线阻挡 safe-area-inset-bottom 一 用法及作用&#xff1a; IOS全面屏底部有小黑线&#xff0c;位于底部的元素会被黑线阻挡&#xff0c;可以使用以下样式&#xff1a; .model{padding-bottom: constant(safe-area-ins…...

C++ 中多态性在实际项目中的应用场景

C中的多态性是面向对象编程中的一个核心概念&#xff0c;它允许我们在使用基类指针或引用的情况下&#xff0c;调用派生类对象的特定方法。这种特性在实际项目中有着广泛的应用场景&#xff0c;具体包括但不限于以下几个方面&#xff1a; 1.图形图像处理&#xff1a; 在图形图…...

深圳外贸网站优化/百度关键词点击器

近日&#xff0c;三款主流的源版本控制系统Git、Subversion (svn)、Mercurial&#xff0c;发布了更新补丁&#xff0c;修复了一个客户端代码执行漏洞。 恶意的攻击者可以向受害者发送一条精心构造的ssh:// URL链接&#xff0c;当受害者访问这条URL则会触发漏洞导致执行恶意代码…...

新软件推广平台/谷歌seo是什么

小米手机5s有何方法拥有Root权限&#xff1f;我们知道&#xff0c;安卓手机有Root权限&#xff0c;如果手机拥有root相关权限&#xff0c;就能够实现更多的功能&#xff0c;比如我们公司的营销部门同事&#xff0c;使用较多营销应用都需要在Root权限下工作&#xff0c;如果手机…...

国务院网站官网建设部/百色seo关键词优化公司

不知不觉已经接近半年多没有写过博客了&#xff0c;这段时间&#xff0c;也是我刚好毕业走出校园的时间&#xff0c;由于学习工作的原因&#xff0c;一直没有真正静下心来写下些什么东西。这个星期刚入了小米笔记本pro的坑&#xff0c;本着新电脑新生活的理念嘻嘻--&#xff0c…...

公司网站建立流程/株洲网站建设

对于方程求解&#xff0c;在实际工程中&#xff0c;往往不需要精确解&#xff0c;而是只需精准到工程所需要的程度即可。本文介绍用牛顿法求解方程近似解&#xff0c;并通过C语言程序来实现。牛顿法求解方程的近似解求解方程设则有可知&#xff0c;开区间(1&#xff0c;2)内&am…...

注册城乡规划师通过率/seo教程技术

我现在执行一个python脚本。例如 print 123。 然后运行。在运行的过程中&#xff0c;我将 print 123 修改成 print 3333.怎么样让这个python自动运行。 求解。tornado也有这样地机制&#xff0c;具体可以看tornado源码&#xff0c;使用上比如:config_evn settings.get("c…...

宝塔建的数据库安装不了wordpress/电话营销

本文介绍Consul如何在Stripe公司扮演服务发现功能的。主要谈论三个方面&#xff1a; 1.什么是服务发现和Consul是什么。 2.Stripe是如何管理关键软件的部署风险。 3.遭遇的挑战和应对措施。 Stripe是一家类似支付宝、Paypal的网上支付平台&#xff0c;Stripe不仅需要处理交易&…...