Краткое руководство: отправка широковещательных сообщений в режиме реального времени из консольного приложения

Служба Azure SignalR предоставляет REST API для поддержки сценариев обмена данными между клиентами, таких как трансляция. Вы можете выбрать любой язык программирования, который может выполнять вызовы REST API. Вы можете отправлять сообщения всем подключенным клиентам, конкретному клиенту по имени или группе клиентов.

Из этого краткого руководства вы узнаете, как отправлять сообщения из приложения командной строки в подключенные клиентские приложения в C#.

Внимание

Исходные строки подключения приводятся в этой статье только в демонстрационных целях.

Строка подключения содержит сведения об авторизации, необходимые вашему приложению для доступа к службе Azure SignalR. Ключ доступа в строке подключения аналогичен паролю привилегированного пользователя для службы. В рабочих средах всегда защищать ключи доступа. Используйте Azure Key Vault, чтобы безопасно управлять ключами и ротировать их, а также защитить строку подключения с помощью Microsoft Entra ID и авторизовать доступ с помощью Microsoft Entra ID.

Старайтесь не распространять ключи доступа среди других пользователей, жестко программировать их или где-то сохранять в виде обычного текста в открытом доступе для других пользователей. Меняйте ключи, если считаете, что они могли быть скомпрометированы.

Предварительные требования

Это краткое руководство можно использовать в macOS, Windows или Linux.

Если у вас нет аккаунта Azure, создайте бесплатную учетную запись перед началом.

Возникли проблемы? См. руководство по устранению неполадок или сообщите о проблеме нам.

Вход в Azure

Войдите на портал Azure с помощью учетной записи Azure.

Возникли проблемы? См. руководство по устранению неполадок или сообщите о проблеме нам.

В этом разделе описано, как создать базовый экземпляр Azure SignalR, используемый для приложения. Следующие действия используют портал Azure для создания нового экземпляра, но также можно использовать Azure CLI. Дополнительные сведения см. в описании команды az signalr create в Справочнике по Служба Azure SignalR CLI.

  1. Войдите на портал Azure.
  2. Щелкните + Создать ресурс в левом верхнем углу страницы.
  3. На странице "Создание ресурса" в текстовом поле Поиск служб и Marketplace введите signalr, а затем выберите Служба SignalR из списка.
  4. На странице Служба SignalR нажмите кнопку "Создать".
  5. На вкладке Основные сведения введите основные сведения о новом экземпляре службы SignalR. Введите следующие значения:
Поле Рекомендуемое значение Описание
Подписка Выберите свою подписку Выберите подписку, которую вы хотите использовать для создания нового экземпляра службы SignalR.
Группа ресурсов Создайте группу ресурсов с именем SignalRTestResources Выберите или создайте группу ресурсов для ресурса SignalR. Для этого руководства рекомендуется создать новую группу ресурсов вместо использования существующей группы ресурсов. Чтобы освободить ресурсы после завершения работы с руководством, удалите группу ресурсов.

При удалении группы ресурсов также удаляются все ресурсы, принадлежащие группе. Это действие невозможно отменить. Перед удалением группы ресурсов убедитесь, что она не содержит ресурсов, которые вы хотите сохранить.

Дополнительные сведения см. в статье Использование групп ресурсов для управления ресурсами Azure.
Имя ресурса testsignalr Введите уникальное имя для ресурса SignalR. Если testsignalr уже взят в регионе, добавьте цифру или символ, пока имя не будет уникальным.

Имя должно быть строкой длиной от 1 до 63 символов и содержать только цифры, буквы и символ -. Имя не может начинаться или заканчиваться символом дефиса, а последовательные символы дефиса недопустимы.
Регион Выберите регион Выберите подходящий регион для нового экземпляра службы SignalR.

Служба Azure SignalR сейчас недоступен во всех регионах. Дополнительные сведения см. в разделе Доступность Служба Azure SignalR по регионам
Ценовая категория Выберите Изменить, а затем — Бесплатно (только для разработки и тестирования). Выберите "Выбрать ", чтобы подтвердить выбор ценовой категории. Служба Azure SignalR имеет три ценовых категории: "Бесплатный", "Стандартный" и "Премиум". Учебники используют уровень "Бесплатный " , если не указано иное в предварительных требованиях.

Дополнительные сведения о различиях в функциях и ценах между уровнями см. в разделе Цены на Служба Azure SignalR
Режим службы Выбор соответствующего режима службы Используйте Default, когда вы размещаете логику концентратора SignalR в своих веб-приложениях и используете службу SignalR как прокси. Используйте Serverless, если вы используете бессерверные технологии, такие как Функции Azure, для размещения логики концентратора SignalR.

Классический режим предназначен только для обратной совместимости и не рекомендуется использовать.

Дополнительные сведения см. в разделе «Режим службы в службе Azure SignalR».

Вам не нужно изменять параметры на вкладках "Сеть и теги " для учебников SignalR.

  1. Нажмите кнопку "Просмотр и создание " в нижней части вкладки "Основные сведения".
  2. На вкладке "Просмотр и создание" просмотрите значения и нажмите кнопку "Создать". Для завершения развертывания потребуется несколько минут.
  3. По завершении развертывания нажмите кнопку "Перейти к ресурсу ".
  4. На странице ресурсов SignalR выберите "Ключи" в меню слева в разделе "Параметры".
  5. Скопируйте строку подключения для первичного ключа. Это строка подключения вам потребуется, чтобы настроить приложение позже в этом руководстве.

Возникли проблемы? См. руководство по устранению неполадок или сообщите о проблеме нам.

Клонирование примера приложения

Пока служба развертывается, давайте подготовим код. Сначала клонируйте пример приложения из GitHub. Затем задайте для приложения строку подключения службы SignalR. Наконец, запустите приложение локально.

  1. Откройте окно терминала Git. Перейдите в папку, в которую вы хотите клонировать пример проекта.

  2. Выполните команду ниже, чтобы клонировать репозиторий с примером. Эта команда создает копию примера приложения на локальном компьютере.

    git clone https://github.com/aspnet/AzureSignalR-samples.git
    

Возникли проблемы? См. руководство по устранению неполадок или сообщите о проблеме нам.

Собрать и запустить пример

Этот пример представляет собой консольное приложение, показывающее использование службы Azure SignalR. Он предоставляет два режима.

  • Режим сервера — используйте простые команды для вызова REST API службы Azure SignalR.
  • Режим клиента — подключитесь к службе Azure SignalR и получайте сообщения с сервера.

Вы также узнаете, как сгенерировать маркер доступа для аутентификации в службе Azure SignalR.

Соберите исполняемый файл

В качестве примера мы используем macOS osx.10.13-x64. Можно найти рекомендации по сборке на других платформах.

cd AzureSignalR-samples/samples/Serverless/

dotnet publish -c Release -r osx.10.13-x64

Запуск клиента

Исходные строки подключения приводятся в этой статье только в демонстрационных целях. В рабочих средах всегда защищать ключи доступа. Используйте Azure Key Vault, чтобы безопасно управлять ключами и ротировать их, а также защитить строку подключения с помощью Microsoft Entra ID и авторизовать доступ с помощью Microsoft Entra ID.

cd bin/Release/netcoreapp2.1/osx.10.13-x64/

Serverless client <ClientName> -c "<ConnectionString>" -h <HubName>

Запуск сервера

cd bin/Release/netcoreapp2.1/osx.10.13-x64/

Serverless server -c "<ConnectionString>" -h <HubName>

Возникли проблемы? См. руководство по устранению неполадок или сообщите о проблеме нам.

Запуск примера без публикации

Вы также можете запустить следующую команду, чтобы запустить сервер или клиент.

# Start a server
dotnet run -- server -c "<ConnectionString>" -h <HubName>

# Start a client
dotnet run -- client <ClientName> -c "<ConnectionString>" -h <HubName>

Использование функции user-secrets для указания строки подключения

Вы можете выполнить dotnet user-secrets set Azure:SignalR:ConnectionString "<ConnectionString>" в корневом каталоге примера. После этого вам больше не нужен параметр -c "<ConnectionString>".

Возникли проблемы? См. руководство по устранению неполадок или сообщите о проблеме нам.

Использование

После запуска сервера используйте такую команду для отправки сообщения.

send user <User Id>
send users <User List>
send group <Group Name>
send groups <Group List>
broadcast

Можно запустить несколько клиентов с разными именами.

Возникли проблемы? См. руководство по устранению неполадок или сообщите о проблеме нам.

Интеграция со службами, не относящимися к Microsoft

Служба Azure SignalR позволяет не службы Майкрософт интегрироваться с системой.

Определение технических спецификаций

Ознакомьтесь с версиями REST API для всех поддерживаемых версий и спецификаций API.

Возникли проблемы? См. руководство по устранению неполадок или сообщите о проблеме нам.

Очистка ресурсов

Если вы не собираетесь продолжать использовать это приложение, удалите все ресурсы, созданные в рамках этого краткого руководства, выполнив следующие действия, чтобы с вас не взималась плата.

  1. На портале Azure выберите Группа ресурсов слева, а затем созданную группу ресурсов. Также можно использовать поле поиска для поиска ресурса по его имени.

  2. В открывшемся окне выберите группу ресурсов и щелкните Удалить группу ресурсов.

  3. В новом окне введите имя группы ресурсов, которую требуется удалить, и щелкните Удалить.

Возникли проблемы? См. руководство по устранению неполадок или сообщите о проблеме нам.

Следующие шаги

В этом кратком руководстве вы узнали, как использовать REST API для трансляции сообщений от Службы SignalR к клиентам в режиме реального времени. Далее узнайте больше о том, как создавать и развертывать Функции Azure с помощью привязки к службе SignalR Azure, которая основана на REST API.