我有一台Redis服务器,服务将消息发布到某个频道。现在,我想在另一个应用程序中使用最新的SignalR 2位(编写本文时为1.0.0-alpha2-final),只需将发送到该特定通道的消息推送/转发到客户端(浏览器)在我的情况下)。
我将以下NuGet包添加到我的ASP.NET Core项目......
<PackageReference Include="Microsoft.AspNetCore.SignalR" Version="1.0.0-alpha2-final" />
<PackageReference Include="Microsoft.AspNetCore.SignalR.Redis" Version="1.0.0-alpha2-final" />
...并配置了SignalR服务,如:
services.AddSignalRCore().AddRedis(options =>
{
options.Factory = writer =>
{
string host = ...;
int.TryParse(this.Configuration["<port>"], out int port);
var configuration = new ConfigurationOptions
{
EndPoints = { {host, port} },
Password = this.Configuration["<secret>"],
};
return ConnectionMultiplexer.Connect(configuration, writer);
};
});
由于没有集线器(我实际上不知道我是否需要集线器),我不知道JavaScript客户端如何订阅。除此之外,应用程序本身并不是推送消息,而是另一个通过PUBLISH
向Redis发布消息的应用程序。通过HTTP请求向应用程序发送消息不是一种选择,因为这会减慢;这是一个(接近)实时场景......
我想知道是否可以将Redis Pub / Sub通信转发到SignalR(开箱即用),或者我是否需要利用StackExchange客户端并手动将其连接到集线器。