首页 前端知识 vue实现post请求接口流式输出数据sse

vue实现post请求接口流式输出数据sse

2024-09-01 23:09:36 前端知识 前端哥 657 356 我要收藏

使用fetchEventSource

参考git源码:https://github.com/Azure/fetch-event-source/tree/main

本地联通 发现数据并没有流式输出:vue代理需要关闭compress

如下:

devServer:{
     proxy:{},
     compress:false
}
复制

安装插件

npm install @microsoft/fetch-event-source
复制

引入插件

import { fetchEventSource } from "@microsoft/fetch-event-source";
复制

vue关键代码:

connectSse(){
const ctrl = new AbortController();
fetchEventSource('/api/v1/sse',{
method: 'POST',
mode: 'no-cors',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({data:[this.searchData]}),
signal: ctrl.signal,
onopen(response){
// 成功连接时回调
console.log('连接成功',response)
},
onmessage(msg) {
// 服务器返回消息回调 返回{ data,event,id,retry } ,data即服务器返回数据
if (msg.event == '') {
// 进行连接正常的操作流程
let result = JSON.parse(msg.data)
// 将需要展示的数据更新到vue的data中,当然如下this.showData肯定赋值不上,需要将this 指向一个变量,用变量接受数据即可,以下只是展示
this.showData += result.content
}
if (msg.event === 'close') {
ctrl.abort()
}
},
onerror(err) {
throw new err()
}
})
},
复制

研发阶段 需要配置nginx

转载请注明出处或者链接地址:https://www.qianduange.cn//article/17422.html
标签
评论
还可以输入200
共0条数据,当前/页
发布的文章

安装Nodejs后,npm无法使用

2024-11-30 11:11:38

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!