У меня есть приложение ASP.NET MVC, которое выполняется на сервере A и некоторых веб-сервисах, которые выполняются на сервере B. Я реализовал уведомления в режиме реального времени, для которых я использовал SignalR на сервере A. Но теперь мне нужен сервер B для также может отправлять сообщения в представление, поданное с сервера A (основное веб-приложение). Следовательно, я пытаюсь использовать здесь для подключения объединительной платы Redis.
В моем запуске на сервере A я добавил следующее:
GlobalHost.DependencyResolver.UseRedis("localhost", 6379, string.Empty, "abc");
app.MapHubs();
Здесь я предполагаю, что "myApp" указывает канал, и когда я запускаю publish abc "hello world"
на консоли Redis, я могу подсчитать количество подписчиков, возвращенное как 1, но я не могу понять, как взаимодействует концентратор SignalR с канал. Где я могу получить сообщение на сервере/представлении? Можем ли мы подписаться только на один канал redis? Не можем ли мы динамически настроить подписку на определенный канал?
EDIT: я могу видеть сообщения, отправленные из чата. Приложение реализовано с помощью SignalR на консоли redis, если я подписался на abc
.
Также на данный момент я реализовал свой собственный redis-прослушиватель на сервере A, который при получении сообщения из redis-канала вызывает функцию-концентратор signalR. Я уверен, что должен быть другой способ сделать это, и я надеюсь, что объединительная плата redis может мне помочь, но не знаю, как это работает.