跳到主要内容

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 与粘性策略(按实际架构选择)。

相关文档