vue单项数据传输流式回复功能,post传值可关闭请求(@microsoft/fetch-event-source)
需求:实现一个类似于文心一言ai回复功能,一个字一个字往外蹦,不使用websocket还有什么其他方案呢?经过查询有一个 @microsoft/fetch-event-source单向传输协议(服务端传输客户端)。废话不多说,上代码
// 下载依赖
npm i @microsoft/fetch-event-source// 页面引入
import { fetchEventSource } from "@microsoft/fetch-event-source";// 使用
let that = this;
that.ctrlAbout = new AbortController();
let eventSourcepost = fetchEventSource('your-api', {method: 'POST',headers: {"Accept": 'text/event-stream'},signal: that.ctrlAbout.signal,body: JSON.stringify({// your body参数}),onmessage(event) {// 成功之后操作// 。。。。。// 成功之后满足某些条件可以使用AbortController关闭连接this.ctrlAbout.abort()},onerror() {
// 服务异常},onclose() {// 服务关闭},
})
注:代码仅供参考,如有问题请不吝赐教。如有其他方案,望告知,我学习。。。。。。。。
注:目前此插件不支持小程序,小程序可用websocket的。