SignalR Core масштабирование / хостинг - PullRequest
0 голосов
/ 02 мая 2020

У меня есть несколько вопросов относительно SignalR Core на стороне сервера;

Мой сервер написан на ASP. NET Core, и он использует SignalR для отправки уведомлений пользователям. Сервер использует контроллеры с конечными точками, с которыми взаимодействуют клиенты.

1) Могу ли я разместить все это в Azure службе приложений и добавить к ней службу SignalR? Или было бы лучше разделить код SignalR на его собственный сервер, который при необходимости вызывается с «основного» сервера?

2) Служба SignalR имеет опцию «Без сервера», которая в соответствии с Документация не поддерживает клиентов, вызывающих какие-либо серверные RPC в указанном режиме. Могу ли я запустить эту вещь в режиме без сервера, поскольку я использую только сокеты для отправки уведомлений клиентам. Или он зарезервирован для Azure функций?

3) Есть ли способ получить количество соединений для пользователя в концентраторе SignalR? Я хотел бы отправить сообщение pu sh пользователю, если у него нет никаких подключений к серверу. Если нет - каков рекомендуемый способ справиться с этим? Я думал о добавлении одноэлементного сервиса, который ведет подсчет, но не уверен, будет ли он работать в масштабе, особенно с сервисом SignalR.

Спасибо.

1 Ответ

0 голосов
/ 04 мая 2020

1) Лучше использовать Azure SignalR.

2) Используйте его с концентратором.

3) Если вы используете Azure SignalR, вы можете просто увидеть его из портал. В коде всякий раз, когда вы используете Azure SignalR или нет, вы можете сохранить идентификатор пользователя в некоторой переменной и подсчитать количество подключений. Если у вас несколько хабов и серверов, вам нужно сделать больше (например, с помощью redis-backplane).

...