IGeekFan.AspNetCore.SignalR.FreeRedis
包定位
为 SignalR 提供 Redis Backplane,支持多节点实时消息广播,解决单机内存 Hub 的跨实例通信限制。
典型场景
- 即时通知、在线聊天、协作编辑
- 多实例部署下的统一广播
- 需要横向扩展的 WebSocket 服务
安装
dotnet add package IGeekFan.AspNetCore.SignalR.FreeRedis
最小配置
using FreeRedis;
var builder = WebApplication.CreateBuilder(args);
builder.Services
.AddSignalR()
.AddFreeRedis(builder.Configuration.GetConnectionString("Redis"));
var app = builder.Build();
app.MapHub<ChatHub>("/hubs/chat");
配置示例
{
"ConnectionStrings": {
"Redis": "127.0.0.1:6379,password=***,defaultDatabase=1"
}
}
运维建议
- 为实时业务分配独立 Redis DB 或实例,降低相互影响。
- 关注连接数、广播延迟、丢包重试指标。
- 在网关层配置 WebSocket 与粘性策略(按实际架构选择)。