Реализация объединительной платы SignalR Redis

Настройте объединительную плату Redis в соответствии со статьей: https://docs.microsoft.com/en-us/aspnet/core/signalr/redis-backplane?view=aspnetcore-3.1, как просмотреть опубликованные сообщения в Redis ?. Я хочу убедиться, что redis pub / sub действительно используется, без его развертывания на 2 разных узлах.

Конфигурация:

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

Я мог бы видеть в redis-cli, когда сообщение отправлено через (Hub => chat hub):

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

При подписке ничего не отображается:  введите описание изображения здесь


person ShaneKm    schedule 13.01.2020    source источник


Ответы (1)


ПОДПИСАТЬСЯ будет подписываться на точный ключ, который вы ему даете, в данном случае «MyApp». Это неправильное имя, поскольку SignalR будет использовать несколько каналов для отправки сообщений и просто будет использовать «MyApp» в качестве префикса к именам каналов.

Если вы хотите прослушивать все каналы с «MyApp» в начале, вам необходимо использовать PSUBSCRIBE и дайте ему образец для имен каналов (например, «MyApp *»).

Или вы можете использовать команду MONITOR для просмотра всего трафика через Redis.

person Brennan    schedule 22.01.2020