Documentation
¶
Overview ¶
Package sse 提供 Server-Sent Events 实时推送能力: 客户端通过 HTTP 长连接订阅事件,服务端按事件名定向或广播推送。 配合 eventbus 可把进程内事件桥接到浏览器端。
Index ¶
- type Client
- type Manager
- func (m *Manager) BridgeEventBus(ctx context.Context, bus *eventbus.Bus) func()
- func (m *Manager) Broadcast(event string, data interface{}) error
- func (m *Manager) Close() error
- func (m *Manager) Count() int
- func (m *Manager) Handle(ctx iris.Context)
- func (m *Manager) HandleEvents(ctx iris.Context, events ...string)
- func (m *Manager) Handler(events ...string) http.HandlerFunc
- func (m *Manager) SendTo(clientID, event string, data interface{}) error
- func (m *Manager) WithHeartbeat(interval time.Duration) *Manager
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client 表示一个 SSE 长连接客户端。
func (*Client) IsSubscribed ¶
IsSubscribed 判断是否订阅了指定事件。
type Manager ¶
type Manager struct {
// contains filtered or unexported fields
}
Manager 管理全部 SSE 客户端。
func (*Manager) BridgeEventBus ¶
BridgeEventBus 把 eventbus 事件桥接到 SSE 广播(事件名作为 SSE event 名)。 返回取消函数;ctx 取消或调用取消函数时自动解除桥接。
func (*Manager) Handle ¶
Handle 是 Iris SSE 处理器:升级连接、按 events 订阅、循环推送直到连接断开。 用法:app.Get("/events", sseManager.Handle, ...) —— 注意事件参数无法通过路由传递, 如需指定订阅事件,使用 HandleEvents(ctx, events...)。
func (*Manager) HandleEvents ¶
HandleEvents 是带订阅事件列表的 Iris SSE 处理器。
func (*Manager) Handler ¶
func (m *Manager) Handler(events ...string) http.HandlerFunc
Handler 返回标准库 SSE 处理器;可配合 iris.FromStd 使用,或直接用于 net/http。 events 为该连接订阅的事件;连接断开时自动注销。
Click to show internal directories.
Click to hide internal directories.