更新记录
1.0.0(2026-09-03)
下载此版本
1.0.0(2026-09-01)
- 首次发布
- 支持 H5、微信小程序、App 三端 SSE 流式请求
- 内置增量 UTF-8 解码器,解决真机中文乱码
- 支持手动中断(abort)
平台兼容性
uni-app(5.25)
| Vue2 |
Vue3 |
Chrome |
Safari |
app-vue |
app-nvue |
Android |
iOS |
鸿蒙 |
| - |
√ |
√ |
- |
- |
- |
√ |
- |
- |
| 微信小程序 |
支付宝小程序 |
抖音小程序 |
百度小程序 |
快手小程序 |
京东小程序 |
鸿蒙元服务 |
QQ小程序 |
飞书小程序 |
小红书小程序 |
快应用-华为 |
快应用-联盟 |
| √ |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
uni-sse
跨平台 SSE(Server-Sent Events)流式请求工具,支持 H5(fetch stream)、微信小程序(wx.request enableChunked)、App(uni.request enableChunked) 三端统一调用。
特性
- 🌐 三端统一:一套 API,H5 / 微信小程序 / App 自动适配
- 🆒 真机不乱码:内置增量 UTF-8 解码器,解决中文在切分 chunk 时的乱码问题
- 🛑 可中断:返回
abort() 方法,随时停止请求
- 📦 零依赖:无需第三方库,纯原生实现
安装
通过 uni-app 插件市场导入,或手动将 uni_modules/uni-sse 复制到项目根目录。
使用
import { sseRequest } from '@/uni_modules/uni-sse/utils/sse'
const task = sseRequest({
prefix: '/api', // 可选,API 前缀
url: '/chat/stream', // 必填,请求路径
method: 'POST', // 可选,默认 POST
data: { question: '你好' }, // 请求体
header: { Authorization: 'Bearer xxx' }, // 可选,自定义请求头
onMessage: (data) => {
// 收到服务端推送的数据(每条 data: 字段的纯文本内容)
console.log('收到消息:', data)
},
onDone: () => {
// 流式传输结束
console.log('流结束')
},
onError: (err) => {
// 发生错误时回调
console.error('错误:', err)
}
})
// 中途中断请求
task.abort()
参数说明
| 参数 |
类型 |
必填 |
默认值 |
说明 |
| prefix |
String |
否 |
'' |
接口前缀,拼接在 url 前 |
| url |
String |
是 |
- |
请求路径 |
| method |
String |
否 |
POST |
请求方法 |
| data |
Object |
否 |
{} |
请求体数据 |
| header |
Object |
否 |
{} |
自定义请求头 |
| onMessage |
Function |
是 |
- |
消息回调,参数为 data 字段内容 |
| onDone |
Function |
否 |
- |
流结束回调 |
| onError |
Function |
否 |
- |
错误回调 |
返回值
返回 { abort: Function } 对象,调用 abort() 可中断请求。
平台支持
| 平台 |
支持情况 |
| H5 |
✅ fetch + ReadableStream |
| 微信小程序 |
✅ wx.request + enableChunked |
| App (Android) |
✅ uni.request + enableChunked |
| App (iOS) |
✅ uni.request + enableChunked |
| App (Harmony) |
✅ uni.request + enableChunked |
| 其它小程序 |
理论上支持,需自行测试 |