更新记录

0.1(2025-12-23) 下载此版本

API

  • createSseClient(options) 创建客户端
    • url:SSE 地址(默认 http://localhost/sse
    • headers:对象,可选
    • reconnectInterval:首次重连间隔 ms,默认 2000
    • maxRetries:最大重试次数,默认 10
    • heartbeatInterval:心跳检测间隔 ms,默认 15000
    • heartbeatTimeout:若超时时间内无事件则重连,默认 20000
    • throttleMs:事件分发节流,默认 0(关闭)
  • connect() 发起连接
  • close() 关闭连接
  • onEvent(callback) 监听事件,事件对象:
    • { type: 'open' | 'message' | 'error' | 'closed' | 'retry', data, lastEventId }
  • setHeaders(headers) 运行时更新请求头

发布说明

  • 仅支持 APP 端(Android 原生实现),无鉴权逻辑,安全策略由业务自行处理
  • 未做浏览器兼容性处理,亦无 iOS 版本
  • 默认 SSE 地址为 http://localhost/sse,请在调用时传入真实地址

平台兼容性

uni-app(4.45)

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 快应用-华为 快应用-联盟
- - - - - - - - - - -

其他

多语言 暗黑模式 宽屏模式

SSE Client(DCloud 原生插件)

原生 Java 实现的 SSE 客户端,适配 uni-app APP 端,支持自动重连、心跳检测、自定义事件分发、节流与断网重连。提供 JS SDK(ESM/UMD)与最小示例页面,适合发布到 DCloud 插件市场。

功能特性

  • 原生 OkHttp SSE 实现,连接与事件分发在原生层完成
  • 自动重连(指数退避可配置)、最大重试次数可配置
  • 心跳超时检测,超时后自动重连
  • 自定义事件分发,支持节流(防抖)
  • 断网检测,恢复后自动重连

目录结构

plugins/sse-client
├─ android/                # 原生源码(可直接集成)
├─ dist/                   # JS SDK 产物(ESM/UMD)
├─ src/                    # JS SDK 源码
├─ demo/                   # 简易示例页面
└─ package.json            # DCloud 插件描述

安装与集成

1) 将本目录作为 nativeplugins 导入 HBuilderX,或在 CLI 工程中放入 nativeplugins/sse-client。 2) Android 需依赖 OkHttp:

  • com.squareup.okhttp3:okhttp:4.12.0
  • com.squareup.okhttp3:okhttp-sse:4.12.0 3) JS 侧引入(任选其一):
    // ESM
    import { createSseClient } from '@/plugins/sse-client/dist/index.esm.js'
    // UMD
    const { createSseClient } = require('@/plugins/sse-client/dist/index.umd.js')

快速上手(示例)

demo/pages/index.vue 已提供可运行示例,核心用法:

const sse = createSseClient({
  url: 'http://localhost/sse',
  reconnectInterval: 2000,
  maxRetries: 8,
  heartbeatInterval: 15000,
  heartbeatTimeout: 20000,
  throttleMs: 300
})

onMounted(() => {
  sse.onEvent(evt => {
    console.log('SSE event', evt)
  })
  sse.connect()
})

onUnmounted(() => {
  sse.close()
})

API

  • createSseClient(options) 创建客户端
    • url:SSE 地址(默认 http://localhost/sse
    • headers:对象,可选
    • reconnectInterval:首次重连间隔 ms,默认 2000
    • maxRetries:最大重试次数,默认 10
    • heartbeatInterval:心跳检测间隔 ms,默认 15000
    • heartbeatTimeout:若超时时间内无事件则重连,默认 20000
    • throttleMs:事件分发节流,默认 0(关闭)
  • connect() 发起连接
  • close() 关闭连接
  • onEvent(callback) 监听事件,事件对象:
    • { type: 'open' | 'message' | 'error' | 'closed' | 'retry', data, lastEventId }
  • setHeaders(headers) 运行时更新请求头

发布说明

  • 仅支持 APP 端(Android 原生实现),无鉴权逻辑,安全策略由业务自行处理
  • 未做浏览器兼容性处理,亦无 iOS 版本
  • 默认 SSE 地址为 http://localhost/sse,请在调用时传入真实地址

许可

MIT

隐私、权限声明

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

网络相关权限

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

插件不采集任何数据

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

许可协议

MIT协议

暂无用户评论。