- 🌐 多端支持:Web、微信小程序、百度小程序
- 📦 开箱即用:完整的 TypeScript 类型支持
- 🛠 功能丰富:支持数据预处理、生命周期回调、请求中断等
npm install sse-kit
# 或者
pnpm add sse-kitimport { SSEProcessor } from 'sse-kit/lib/bundle.h5.esm';  // Web 环境
// import { SSEProcessor } from 'sse-kit/lib/bundle.weapp.esm';  // 微信小程序
// import { SSEProcessor } from 'sse-kit/lib/bundle.swan.esm';   // 百度小程序
// 创建 SSE 实例
const sse = new SSEProcessor({
    url: 'https://api.example.com/sse',
    method: 'POST'
});
// 接收数据流
for await (const data of sse.message()) {
    console.log('收到消息:', data);
}const sse = new SSEProcessor({
    // 基础配置
    url: 'https://api.example.com/sse',
    method: 'POST',
    reqParams: { userId: '123' },
    headers: { 'Authorization': 'Bearer token' },
    
    // 高级配置
    timeout: 60000,        // 超时时间:60s
    enableConsole: true,   // 开启调试日志
    
    // 生命周期回调
    onHeadersReceived: (headers) => console.log('连接成功'),
    onComplete: () => console.log('请求完成'),
    onError: (err) => console.error('请求错误', err),
    
    // 数据预处理
    preprocessDataCallback: (data) => data
});- message(): 获取数据流
- getCurrentEventId(): 获取当前事件 ID
- close(): 中断请求
- 请求超时默认为 60 秒
- 百度小程序环境下可能出现中文乱码,建议使用 base64 编码传输数据
- 开启 enableConsole: true可以查看详细日志,便于调试
# 安装依赖
pnpm install
# 启动开发环境(选择一个)
pnpm dev:h5     # Web 环境
pnpm dev:weapp  # 微信小程序
pnpm dev:swan   # 百度小程序
# 启动本地测试服务
pnpm dev:server├─lib
├── bundle.h5.cjs.js
├── bundle.h5.esm.js
├── bundle.swan.cjs.js
├── bundle.swan.esm.js
├── bundle.weapp.cjs.js
└── bundle.weapp.esm.js
// 按照当前平台引入 SDK;
import { SSEProcessor } from 'sse-kit/lib/xxx';
// 实例化 SSE 请求;
const sseInstance = new SSEProcessor({
    url: 'xxx',
    method: "POST",
    reqParams: {},
    onHeadersReceived: () => {
        // 请求连接建立成功,收到 response header;
    },
    onComplete: () => {
        // 请求完成;
    },
    onError: () => {
        // 请求出错;
    },
});
// 获取 SSE 请求数据;
for await (const chunk of sseInstance.message()) {
   console.info('获取到新的 chunk----------:', chunk);
}
$ pnpm install
// 启动指定平台的 demo 项目,默认启动对应 server 服务,对 sdk 进行构建并 watch 改动;
$ pnpm dev:h5/weapp/swan 
// 本地调试 
$ pnpm run dev:sdk
// 构建 sse-kit SDK
$ pnpm run build:sdk
用于本地调试的后端服务;
// 启动本地用于调试的后端服务;
$ pnpm run dev:server
// 确认服务是否启动成功;
$ curl -X POST http://localhost:3000/stream/numbers -H "Content-Type: application/json" -d '{}'
用于本地调试的 Taro 项目
$ pnpm dev:h5/weapp/swan 
- 构建结果在 taro-demo/dist/*目录下,不同端会创建对应的子目录;
- 本地调试时,需要配置 local-service作为后端服务;
// 本地调试 
$ pnpm run dev:sdk
// 构建产物
$ pnpm run build:sdk
- 当前支持 web、小程序(微信/百度),在config/const.ts中配置;
- 构建时,会根据平台标识自动构建对应平台的产物;
- 编写针对制定端平台的代码时,需要通过文件命名标识,例如:index.weapp.ts;