Похоже, в конце концов, HubConnection от Microsoft.AspNetCore.SignalR.Client предназначен для подключения к SignalR Hub, управляемому на промежуточном программном обеспечении, таком как Asp.Net Web App \ Api. Он не предназначен для подключения к прямой конечной точке службы Azure SignalR.
Неправильно:
var signalrUrl = "https://myazuresignalr.service.signalr.net";
Правильно: Для клиента чата
var signalrUrl = "https://myazuresignalr.service.signalr.net/client/?hub=yourHubName";
Правильно: Для сервера чата
var signalrUrl = "https://myazuresignalr.service.signalr.net/api/v1/hubs/yourHubName
Теперь я могу подключиться к службе Azure SignalR из веб-приложения Asp.Net, используя его ключ доступа. Asp.Net Web App создает и размещает концентратор через службу Azure SignalR. Из консольного приложения c # я подключаюсь к приложению Asp.Net для связи со службой Azure SignalR.
На поверхности службы Azure SignalR нет четкой документации, подтверждающей, что клиентская библиотека использует REST API-версию SignalR.
Надеюсь, что это может помочь и помочь кому-то еще!
Подводя итог,
Должен ли я всегда реализовывать промежуточное программное обеспечение, такое как веб-приложение Asp.Net, и полагаться на него для создания и общения через Hub? Разве нельзя напрямую общаться со службой Azure SignalR из консоли c # для создания концентратора и отправки моих сообщений через концентратор?
[OP]: нет, не всегда. Есть и другое решение, кроме того, что я написал выше. Это руководство помогает мне общаться со службой Azure SignalR напрямую через REST API.
- ОБНОВЛЕНИЕ -
Создайте центральный концентратор для службы сигналов Azure, используя любой серверный язык ( Я выбрал Asp.Net Web API ). Рекомендуется иметь посредника, такого как Web API
, для авторизации клиентских запросов перед отправкой в службу Azure SignalR. Кроме того, для маскировки строки подключения Azure SignalR от клиентов.
Создание клиентского приложения ( Получатель сообщений, чаще всего ) с помощью библиотеки HubConnectionBuilder с использованием любых клиентских языков, отличающихся от JS, TS, .Net Console, ..
Создайте приложение вещателя сообщений с помощью строки подключения Azure SignalR для отправки сигналов через службу Azure SignalR.
Сервер может публиковать любые новые сигнальные события через концентратор, в то время как клиент может прослушивать эти динамические события при условии, что клиент подписан на эти динамические события.
Клиент может отправлять сигналы только через Web API Central Hub
, когда Web API реализует это событие.