【问题标题】:SignalR Redis backplane implementationSignalR Redis 背板实现
【发布时间】:2020-04-30 15:05:03
【问题描述】:

每篇文章设置redis背板:https://docs.microsoft.com/en-us/aspnet/core/signalr/redis-backplane?view=aspnetcore-3.1,如何查看redis中发布的消息?我想确保在没有将它部署到 2 个不同节点的情况下实际使用了 redis pub/sub。

配置:

public void ConfigureServices(IServiceCollection services)
{
    services.AddSignalR().AddStackExchangeRedis("localhost:6379", options => {
        options.Configuration.ChannelPrefix = "MyApp";
    });

当通过(Hub => 聊天中心)发送消息时,我可以在 redis-cli 中看到:

await Clients.All.SendAsync("broadcastMessage", name, message);

订阅时不显示任何内容:

【问题讨论】:

    标签: c# .net redis signalr redis-cli


    【解决方案1】:

    SUBSCRIBE 将订阅您提供给它的确切密钥,在本例中为“MyApp”。这是错误的名称,因为 SignalR 将使用多个通道来发送消息,并且只会使用“MyApp”作为通道名称的前缀。

    如果您想收听以“MyApp”开头的所有频道,那么您需要使用PSUBSCRIBE 并为其指定频道名称的模式(如“MyApp*”)。

    或者你可以使用MONITOR命令查看Redis上的所有流量。

    【讨论】:

      猜你喜欢
      • 2021-07-13
      • 2019-11-28
      • 2017-01-12
      • 1970-01-01
      • 2018-07-22
      • 2015-12-14
      • 1970-01-01
      • 1970-01-01
      • 2021-04-29
      相关资源
      最近更新 更多