更新记录

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
其它小程序 理论上支持,需自行测试

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

暂无用户评论。