Skip to content

实时通信

当你需要"在线用户数/通知推送/前端实时刷新"能力时,从这里开始。

youlai-aspnet 采用 SSE(Server-Sent Events) 提供实时能力,基于 Channel<T> 实现服务端推送,前端建立长连接后,后端可向客户端推送事件。

技术架构

SSE 接口

接口方法说明
/api/v1/sse/connectGET建立 SSE 连接(需认证)
/api/v1/sse/online-countGET获取在线用户数

连接示例

bash
# SSE 连接测试(替换为实际 token)
curl -N -H "Authorization: Bearer <token>" http://localhost:8000/api/v1/sse/connect

事件主题

事件名说明
init连接建立成功
dict字典变更通知
online-count在线人数广播
notice通知公告推送

业务调用方式

csharp
// 广播字典变更
await _sseService.BroadcastDictChangeAsync("gender");

// 广播在线人数
await _sseService.BroadcastOnlineCountAsync();

// 向指定用户推送消息
await _sseService.SendToUserAsync("admin", "notice", payload);

连接保护机制

保护策略说明
JWT 鉴权连接时验证 Bearer Token
心跳保活定期发送注释事件,检测连接存活
异常清理连接断开时自动清理 Channel 和在线状态

相关文件

文件说明
Youlai.Api/Controllers/Message/SseController.csSSE 控制器
Youlai.Application/Common/ISseService.csSSE 服务接口
Youlai.Application/Common/SseService.csSSE 服务实现
Youlai.Application/Common/SseMessage.csSSE 消息模型

基于 MIT 许可发布 · 由 ❤️ 和 ☕ 驱动 · 支持作者