cSSEClient SSE 客户端组件
简介
cSSEClient 是一个 Server-Sent Events (SSE) 客户端实现,用于接收服务器实时推送的消息。支持自动重连、事件解析、连接状态管理。
特性
- 自动重连机制
- 实时事件接收
- 支持自定义重连间隔
- 支持 Last-Event-ID 续传
- 连接状态管理
- 最大重连次数限制
快速开始
基本使用
vb
Private WithEvents SSE As cSSEClient
Private Sub Form_Load()
Set SSE = New cSSEClient
' 配置重连参数
SSE.AutoReconnect = True
SSE.ReconnectInterval = 3000 ' 3秒
SSE.MaxReconnectAttempts = 10
' 连接到 SSE 服务端
Call SSE.Connect("https://api.example.com/events")
End Sub
Private Sub Form_Unload(Cancel As Integer)
Call SSE.Disconnect()
Set SSE = Nothing
End Sub事件处理
vb
' 连接建立
Private Sub SSE_OnOpen()
Debug.Print "SSE 连接已建立"
End Sub
' 收到消息
Private Sub SSE_OnMessage(EventName As String, Data As String, Id As String)
Debug.Print "事件: " & EventName
Debug.Print "数据: " & Data
Debug.Print "ID: " & Id
End Sub
' 发生错误
Private Sub SSE_OnError(Description As String, ErrorNumber As Long)
Debug.Print "SSE 错误 " & ErrorNumber & ": " & Description
End Sub
' 连接关闭
Private Sub SSE_OnClose()
Debug.Print "SSE 连接已关闭"
End Sub方法
Connect
连接到 SSE 服务端。
vb
Public Function Connect(ByVal ServerUrl As String) As cSSEClientDisconnect
断开 SSE 连接。
vb
Public Sub Disconnect()EnableAutoReconnect
启用自动重连。
vb
Public Sub EnableAutoReconnect()DisableAutoReconnect
禁用自动重连。
vb
Public Sub DisableAutoReconnect()ResetReconnectAttempts
重置重连计数器。
vb
Public Sub ResetReconnectAttempts()属性
| 属性 | 类型 | 说明 |
|---|---|---|
Url | String | 当前连接的 URL |
Connected | Boolean | 连接状态 |
Connecting | Boolean | 是否正在连接中 |
AutoReconnect | Boolean | 是否启用自动重连(默认 True) |
ReconnectInterval | Long | 重连间隔(毫秒,默认 3000ms) |
MaxReconnectAttempts | Long | 最大重连次数(默认 10 次) |
CurrentReconnectAttempts | Long | 当前重连尝试次数 |
LastReceivedEventId | String | 最后收到的事件 ID |
CurrentReconnectDelay | Long | 当前重连延迟(毫秒) |
ServerReconnectInterval | Long | 服务器指定的重连间隔 |
事件
| 事件 | 说明 |
|---|---|
OnOpen() | 连接建立时触发 |
OnMessage(EventName, Data, Id) | 收到消息时触发 |
OnError(Description, ErrorNumber) | 发生错误时触发 |
OnClose() | 连接关闭时触发 |
最后更新: 2026-05-17