Создать сервер SignalR для использования в нескольких приложениях - PullRequest
0 голосов
/ 05 февраля 2020

Я создаю микро-сервис-ориентированное. NET Базовое веб-приложение, и теперь я хочу добавить связь в реальном времени. Можно создать сервер SignalR и опубликовать его sh на Azure? Я хочу использовать его в своих микросервисах для отправки сообщений пользователям, когда происходит определенное событие.

Ответы [ 2 ]

0 голосов
/ 05 февраля 2020

Да, вы можете развернуть свое приложение на Azure и без проблем направить пользователей на конечную точку своего концентратора. Здесь у вас есть два варианта:

  • Используйте SignalR и вручную управляйте соединениями и другими функциями signalR, если вы масштабируете свое приложение. Например, если у вас есть 2 веб-приложения и клиент подключается к одному из них, вам нужно «сообщить» другому приложению, что у вас есть новый клиент, подключенный, например, с помощью Redis Blackplane.
  • Использовать Azure SignalR и этот вид управления не нужен, вам нужно только одно приложение с хабом logi c. Поэтому, когда клиент подключается к вашему концентратору, он автоматически перенаправляется на Azure SignalR.

Подробнее об этих двух параметрах можно прочитать здесь: https://docs.microsoft.com/pt-pt/azure/azure-signalr/signalr-concept-scale-aspnet-core

Почему бы не развернуть SignalR самостоятельно? ´

По-прежнему актуален подход к развертыванию собственного веб-приложения Azure, поддерживающего ASP. NET Core SignalR, в качестве базового компонента для всего приложения. веб приложение. Одной из ключевых причин использования службы Azure SignalR является простота. С Azure службой SignalR вам не нужно решать такие проблемы, как производительность, масштабируемость, доступность. Эти проблемы решаются для вас с соглашением об уровне обслуживания на 99,9%. Кроме того, WebSockets обычно является предпочтительным методом для поддержки обновлений контента в реальном времени. Однако балансировка нагрузки для большого количества постоянных соединений WebSocket становится сложной проблемой, которую необходимо решить при масштабировании. Распространенные решения: балансировка нагрузки на DNS, аппаратная балансировка нагрузки и программная балансировка нагрузки. Azure Служба SignalR решает эту проблему для вас. Другая причина может заключаться в том, что у вас нет требований к собственному размещению веб-приложений вообще. Логика c вашего веб-приложения может использовать серверные вычисления. Например, возможно, ваш код размещается и выполняется только по требованию с помощью Azure триггеров функций. Этот сценарий может быть сложным, потому что ваш код выполняется только по требованию и не поддерживает длинные соединения с клиентами. Azure Служба SignalR может справиться с этой ситуацией, поскольку служба уже управляет соединениями для вас. Подробнее об использовании службы SignalR с функциями Azure см.

0 голосов
/ 05 февраля 2020

Да, вы можете, это официальный пример быстрого старта. https://docs.microsoft.com/en-us/azure/azure-signalr/signalr-quickstart-dotnet-core

...