如何将Redis发布/订阅消息转发到ASP.NET Core中的SignalR 2

时间:2017-12-13 22:22:40

标签: c# asp.net-core redis signalr asp.net-core-signalr

我有一台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客户端并手动将其连接到集线器。

0 个答案:

没有答案