SignalR с объединительной панелью Redis;Что я делаю неправильно? - PullRequest
1 голос
/ 27 июня 2019

Я новичок как в SignalR, так и в Redis.У меня есть приложение ASP.NET Core SignalR, и я пытаюсь проверить концепцию использования Redis в качестве объединительной панели при ее масштабировании, как описано здесь: https://docs.microsoft.com/en-us/aspnet/core/signalr/scale?view=aspnetcore-2.2#redis-backplane

Чтобы проверить это наВ небольшом масштабе я создал два отдельных проекта демонстрационного приложения для чата SignalR, описанного здесь: https://docs.microsoft.com/en-us/aspnet/core/tutorials/signalr?view=aspnetcore-2.2&tabs=visual-studio

Я открыл два экземпляра (клиента) каждого демонстрационного приложения и убедился, что каждый экземпляр отправляет сообщения назад и вперед между егособственные клиенты.

снимок экрана до Redis, 2 рабочих демонстрационных приложения

Затем я установил локальную базу данных Redis, используя версию 3.0.504 найденного файла Windows MSI.здесь: https://github.com/microsoftarchive/redis/releases

Используя redis-cli.exe, я вижу, что могу подключиться к локальному экземпляру Redis:

127.0.0.1:6379> CLIENT SETNAME 'MyLocalConnection'
OK
127.0.0.1:6379> CLIENT LIST
id=22 addr=127.0.0.1:57283 fd=9 name=MyLocalConnection age=158 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=32768 obl=0 oll=0 omem=0 events=r cmd=client

Далее я обновил оба моих демонстрационных приложения на основепо этим инструкциям: https://docs.microsoft.com/en-us/aspnet/core/signalr/redis-backplane?view=aspnetcore-2.2

Я установил пакет NuGet Microsoft.AspNetCore.SignalR.StackExchangeRedis v1.1.5 и обновил файл startup.cs:

//services.AddSignalR();
services.AddSignalR().AddStackExchangeRedis("localhost");

Я запустил оба приложения,и используя redis-cli.exe, япроверил, что оба подключаются правильно:

127.0.0.1:6379> CLIENT LIST
id=29 addr=127.0.0.1:53692 fd=13 name=DESKTOP-ALLBLN9 age=11 idle=10 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=get
id=30 addr=127.0.0.1:53693 fd=11 name=DESKTOP-ALLBLN9 age=11 idle=9 flags=N db=0 sub=5 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=subscribe
id=31 addr=127.0.0.1:53695 fd=10 name= age=10 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=32768 obl=0 oll=0 omem=0 events=r cmd=client
id=32 addr=127.0.0.1:53696 fd=9 name=DESKTOP-ALLBLN9 age=10 idle=9 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=get
id=33 addr=127.0.0.1:53697 fd=12 name=DESKTOP-ALLBLN9 age=10 idle=8 flags=N db=0 sub=5 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=subscribe
127.0.0.1:6379>

На этом этапе я снова открываю два клиента для каждого приложения, ожидая, что сообщение, отправленное любым из них, достигнет всех четырех клиентов.Но он все еще только достигает двух клиентов для этого конкретного приложения.

После добавления Redis клиенты все еще общаются только со своим собственным приложением

Может кто-нибудь помочь мне понять, чтомоя ошибка здесь?Что еще нужно добавить, чтобы оба приложения «увидели» друг друга?Или я неправильно понимаю, как должна работать объединительная панель Redis?

...