消息推送端点,SSE / WebSocket 可配,按 userID + token 归档连接。Handler 必须注册在登录校验路由组内(依赖 sagin.CheckLogin 拿到的 token 做归档键)。
关键导出
Handler() gin.HandlerFunc推送连接端点(按配置选 SSE/WS),必须注册在登录校验路由组内CloseHandler() gin.HandlerFunc主动断开当前连接Init() / Shutdown() / Default() *Manager(m *Manager) Send(...) / Publish(...)投递消息
典型用法
go
// internal/resource/router.go:127
sagin.CheckLogin(), push.Handler()坑/约定
WARNING
upgrader.CheckOrigin恒放行——CORS 中间件管不到 WS 握手,浏览器对ws://不发预检。- SSE 必须在 handler 内阻塞泵消息(handler 一返回
net/http就结束响应体)。 - SSE 到超时上限主动收流,由前端
EventSource重连(不留常驻连接)。 - WS 不设读超时,靠 monitor 的 ping 探活。
isPing同时认裸串"ping"与{"type":"ping"}(前端发 JSON)。 :::
相关页:/modules/resource、/pkg-reference/satoken、/architecture/request-flow。