Как консольное приложение подключается к Azure SignalR Server для получения уведомлений от моего веб-API

Я немного смущен тем, как мое консольное приложение подключается к Azure SignalR Server для получения уведомлений, которые я отправляю через свое приложение веб-API ASP.NET Core.

При запуске своего API я делаю то, что нужно:

services.AddSignalR().AddAzureSignalR();

app.UseAzureSignalR(routes =>
{
   routes.MapHub<NotificationHub>("/notifications");
});

Метод AddAzureSignalR () подключается к серверу Azure SignalR через определенную мной строку подключения в моих настройках приложения.

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

var connectionBuilder = new HubConnectionBuilder()
   .WithUrl("http://localhost:5000/notifications")
   .Build();
await connectionBuilder.StartAsync();

connectionBuilder.On<string, string>("broadcastNotification", (name, message) =>
{
   Console.WriteLine($"Name: {name}, Message: {message}");
});

По каким причинам мое консольное приложение подключается к серверу Azure SignalR через мой API, а не напрямую? Безопасность или дизайн?


person Geert Van Laethem    schedule 11.05.2021    source источник


Ответы (1)


По каким причинам мое консольное приложение подключается к серверу Azure SignalR через мой API, а не напрямую? Безопасность или дизайн?

Судя по вашему описанию и коду, у вас есть хаб-сервер и интегрируйте со службой Azure SignalR.

В этом сценарии, аналогичном этот официальный пример, режим службы вашей службы Azure SignalR будет режимом по умолчанию. В этом режиме ваше приложение работает как типичное приложение SignalR ASP.NET Core (или ASP.NET), и клиенту потребуется подключение к хаб-серверу, как это делали вы.

Для получения дополнительной информации о режимах обслуживания и о том, как выбрать правильный режим обслуживания, ознакомьтесь с этим документом:

https://docs.microsoft.com/en-us/azure/azure-signalr/concept-service-mode#choose-the-right-service-mode

person Fei Han    schedule 13.05.2021