Skip to content

x-sse-s SSE推送

进程级单连接 SSE。new SSEClientApp() 只是门面,全局只保持一条活连接;再次 create 会断开旧连接,监听保留

微信小程序没有流式 HTTP,connect 会报 1008。 Web / 微信不支持自定义证书,applyTls 为空实现。

兼容性

HarmonyIOSAndroidWEB小程序
支持支持支持支持x

鸿蒙需要 ohos.permission.INTERNET

调用

ts
import { SSEClientApp, xSSEOptions } from "@/uni_modules/x-sse-s"

const sse = new SSEClientApp()

sse.onMessage((msg: string) => {
  console.log(msg)
})

sse.create({
  method: "get",
  url: "https://testsse.element-ui-x.com/api/sse",
  header: {},
  rejectUnauthorized: true
} as xSSEOptions)

sse.connect()

构造时传入 xSSEOptions 等价于立刻 create,兼容旧写法:

ts
const sse = new SSEClientApp({
  method: "post",
  url: "https://testsse.element-ui-x.com/api/sse",
  header: { token: "token" }
})
sse.setBody({ prompt: "hi" })
sse.connect()

方法

名称参数说明
createxSSEOptions配置并替换当前连接,不自动 connect
connectheaders?连接 SSE;可临时合并 header
setBodystring | ArrayBuffer | UTSJSONObjectPOST 时在 connect 前设置请求体
disconnect断开,保留监听
destroy断开并清空监听
isConnected是否已打开
getStatewait / opening / open / closed / error
applyTlsSSE_TLS_OPTS写入证书配置,下次 create 生效。Web / 微信空实现
onOpen / onError / onClosed / onMessage回调兼容旧 API,换连接时保留
addEventListeneropen / error / closed / message返回监听 id;error / message 的 data 为字符串
removeEventListenerid按 id 移除

error 事件的 data 为 errCode:errMsgonError 仍无参,兼容旧代码。

证书

Android / iOS / Harmony 从各端插件资源目录读取证书,更换后重新打包:

平台目录
Androidutssdk/app-android/assets/
iOSutssdk/app-ios/Resources/
Harmonyutssdk/app-harmony/resources/rawfile/
字段说明
certNameCA:ca.crt / ca.pem。若为 .p12 则作为客户端证书
clientCertName客户端证书。Android/iOS 用 p12;Harmony 用 pem
clientKeyNameHarmony mTLS 私钥 pem
certPasswordp12 或私钥密码
rejectUnauthorized默认 true
serverNameSNI,默认从 url 解析主机名

仓库自带示例 x-sse-ca.crt(公共根 CA,文件名避开与其它插件冲突)。私有 CA / mTLS 请替换同名文件或改 certName 后重新出包。Web / 微信走系统信任链,自定义证书无效。

错误码

含义
1001系统错误
1002参数错误
1005连接超时
1008当前平台不支持此协议或证书
1010尚未 create
1011证书加载失败
1012证书校验失败

注意事项

使用前一定要打基座才可用,一定要在页面上先引用,再去打基座。 如果你 mac 开发,ios 可以不用打基座,能直接使用(但前提是你要配置好原生开发环境,否则一样要打包)。 如果你是开发安卓,不管是 mac、win 电脑都要打包基座才能使用。

版本

版权归 https://xui.tmui.design 你不得修改及二次开发,仅供 TMUI4 会员商用使用。不得转给非 VIP 会员使用,一经查实数倍赔偿,并追究法律责任。

更新日志

1.1.1(2026-08-16)

  • 鸿蒙禁止 for-in,header 遍历改为 UTSJSONObject.keys

1.1.0(2026-08-16)

  • 改为进程级单连接:再次 create 自动断开旧实例,监听保留
  • 新增 destroy / getState / applyTls / addEventListener;证书从各端资源目录加载
  • 鸿蒙去掉 HAR,改为原生 HTTP 流式 SSE
  • Web GET 改为 fetch,支持自定义 header;微信保持同签名并返回 1008

1.0.3(2026-07-27)

  • 安卓和ios事件移到主线程

1.0.3(2026-06-05)

  • 新增支持post,get请求方法,post时允许使用方法setBody来设置向服务器发送body数据体

1.0.2(2025-07-25)

  • 兼容原生鸿蒙

1.0.1(2025-05-22)

参数修改,支持header

1.0.0(2025-01-07)

连接sse服务器

最近更新