我正在使用ASP.NET Core 2.2构建的项目。主要解决方案包含多个项目,其中包括API,Web和其他类库。
我们已经使用SignalR在API项目和Web项目之间显示共享的消息/通知。例如,从API添加新员工记录应调用SignalR Hub,所有Web客户端都应收到通知。
为了使其通信,我们已将Radis与SignalR一起使用
// SignalR Configuration
services.AddSignalR(option =>
{
option.EnableDetailedErrors = true;
option.KeepAliveInterval = TimeSpan.FromSeconds(3);
}).AddStackExchangeRedis(options =>
{
options.Configuration.ChannelPrefix = "TestChannel";
options.Configuration.EndPoints.Add("127.0.0.1", 6379);
options.Configuration.ClientName = "ClientNameSignalR";
options.Configuration.AllowAdmin = true;
});
[当我尝试在Radis中获取客户列表时,
现在,如何从Web应用程序和API发送和接收消息?
您共享的代码用于set up a Redis backplane for scaling out your ASP.NET Core SignalR app。
如何从Web应用程序和API发送和接收消息?
要达到上述要求,您可以做:
对于您的API项目和Hub server,您可以在API控制器中注入IHubContext的实例,然后可以在控制器操作中访问IHubContext的实例并将消息/通知推送给客户端。
对于您的Web应用程序,您可以构建和实现SignalR JavaScript客户端功能来接收通知。