Краткое руководство. Создание комнаты чата с ASP.NET и Служба SignalR

Служба Azure SignalR основана на экземпляре SignalR для ASP.NET Core 2.1, который совместим с ASP.NET SignalR не на 100 %. Служба Azure SignalR повторное ASP.NET протокол данных SignalR на основе последних технологий ASP.NET Core. При использовании Служба Azure SignalR для ASP.NET SignalR некоторые функции ASP.NET SignalR больше не поддерживаются, например, Azure SignalR не воспроизводит сообщения при повторном подключении клиента. Кроме того, транспорт forever Frame и JSONP не поддерживаются. Чтобы приложение ASP.NET SignalR работало со Службой SignalR, нужно внести некоторые изменения в код и использовать подходящую версию зависимых библиотек.

Полный список сравнения функций ASP.NET SignalR и Службы ASP.NET Core см. в документе об отличиях версий.

В этом кратком руководстве вы узнаете, как приступить к работе с ASP.NET и Служба Azure SignalR для аналогичного приложения комнаты чата.

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

Необходимые компоненты

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

Вход в Azure

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

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

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

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

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

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

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

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

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

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

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

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

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

Бессерверный режим не поддерживается для приложений SignalR ASP.NET. Всегда используйте режим По умолчанию или Классический для экземпляра Службы Azure SignalR.

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

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

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

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

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

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

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

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

Настройка и запуск веб-приложения комнаты чата

  1. Запустите Visual Studio и откройте решение в папке aspnet-samples/ChatRoom/ клонированного репозитория.

  2. В браузере, где открыт портал Azure, найдите и выберите созданный экземпляр.

  3. Выберите ключи для просмотра строк подключения экземпляра службы SignalR.

  4. Выберите и скопируйте основную строку подключения.

  5. Теперь задайте строку подключения в файле web.config.

    <configuration>
    <connectionStrings>
        <add name="Azure:SignalR:ConnectionString" connectionString="<Replace By Your Connection String>"/>
    </connectionStrings>
    ...
    </configuration>
    
  6. В файле Startup.cs вместо вызова метода MapSignalR() необходимо вызвать MapAzureSignalR({YourApplicationName}) и передать строку подключения, чтобы приложение подключилось к службе, а не самостоятельно размещало SignalR. Замените {YourApplicationName} на имя приложения. Это уникальное имя. Оно нужно, чтобы отличать это приложение от других приложений. Вы можете использовать this.GetType().FullName как значение.

    public void Configuration(IAppBuilder app)
    {
        // Any connection or hub wire up and configuration should go here
        app.MapAzureSignalR(this.GetType().FullName);
    }
    

    Прежде чем использовать эти API, вам необходимо сослаться на пакет SDK для служб. Откройте Инструменты | Диспетчер пакетов NuGet | Консоль диспетчера пакетов и выполните команду:

    Install-Package Microsoft.Azure.SignalR.AspNet
    

    Кроме этих изменений, все остальное остается неизменным. Вы по-прежнему можете использовать интерфейс центра, с которым вы уже знакомы, чтобы записывать бизнес-логику.

    Примечание.

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

  7. Нажмите клавишу F5, чтобы запустить проект в режиме отладки. Вы увидите, что приложение запущено локально. Вместо размещения среды выполнения SignalR самим приложением, оно теперь подключается к Службе Azure SignalR.

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

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

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

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

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

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

Важно!

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

Войдите в портал Azure и выберитеГруппы ресурсов.

Введите имя группы ресурсов в текстовое поле Фильтровать по имени.... В инструкциях к этому краткому руководству была использована группа ресурсов с именем SignalRTestResources. В своей группе ресурсов в списке результатов щелкните ..., а затем Удалить группу ресурсов.

Delete

Через некоторое время группа ресурсов и все ее ресурсы будут удалены.

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

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

В этом кратком руководстве вы создали ресурс Службы Azure SignalR и использовали его с веб-приложением ASP.NET. Далее вы узнаете, как разработать приложения в режиме реального времени с помощью Службы Azure SignalR с использованием ASP.NET Core.