Моя команда находится в середине решении архитектуру нашей серверной системы:Использование веб-приложений ASP.NET в качестве SignalR клиента
- Вебсервер А представляет собой приложение ASP.NET MVC с ASP.NET Web API компонент, размещенный на веб-сайте Azure.
- Служба Windows B является самообслуживаемым сервером OWIN, который будет периодически отправлять уведомления клиентам, которые подписываются на уведомление, размещенное на Azure VM.
- Служба Windows C является клиентом, который подписывается на уведомление от B, размещенное на Azure VM.
Так как мы более или менее укоренились в .NET
стека, мы реализовали В качестве SignalR
сервера с С является клиент SignalR
. Эта часть, похоже, работает хорошо.
Теперь наступает момент, когда мы также хотим, чтобы A подписалась на B, но я понимаю, что это означает, что веб-сервер ASP.NET будет действовать как SignalR
CLIENT, вместо типичного сценария, где он действует как сервер SignalR
.
Я предполагаю, что мы можем инициализировать соединение SignalR
в Global.asax
и сделать процесс вечным, чтобы избежать перезарядки AppDomain
. Тем не менее, я чувствую себя немного неудобно, когда веб-сервер создан для выполнения чего-то другого, кроме обслуживания веб-запросов. Это решение также делает веб-сервер не апатридом, поскольку ему необходимо поддерживать соединение веб-сокета вживую.
Есть ли что-то принципиально неправильное при создании приложения ASP.NET
a SignalR
? Есть ли какая-нибудь возможность получить эту настройку?