Поделиться через


Импорт WebSocket API

ОБЛАСТЬ ПРИМЕНЕНИЯ: Разработчик | Базовый | Базовая версия 2 | Стандартный | Standard v2 | Премиум | Премиум версии 2

С помощью решения API WebSocket Управление API издатели API могут быстро добавить API WebSocket в Управление API с помощью портал Azure, Azure CLI, Azure PowerShell и других средств Azure.

Примечание.

В настоящее время эта функция недоступна в рабочих областях.

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

В этой статье описано следующее:

  • Ознакомьтесь с потоком сквозного руководства WebSocket.
  • Добавление API WebSocket в экземпляр Управления API.
  • Тестирование API WebSocket.
  • Просмотр метрик и журналов для API WebSocket.
  • Действующие ограничения для API WebSocket.

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

  • Существующий экземпляр Управления API. Создайте его, если у вас его нет.
  • API WebSocket.
  • Azure CLI

Транзитный сокет WebSocket

Управление API поддерживает транзитный сокет WebSocket.

Наглядная иллюстрация транзитного потока WebSocket

Во время сквозного руководства WebSocket клиентское приложение устанавливает подключение WebSocket к шлюзу Управление API, который затем устанавливает соединение с соответствующими внутренними службами. Управление API выступает как прокси-сервер для сообщений между клиентом и сервером WebSocket.

  1. Клиентское приложение отправляет запрос подтверждения WebSocket шлюзу, вызывая операцию onHandshake.
  2. Шлюз Управление API применяет настроенные политики и отправляет запросы подтверждения WebSocket в соответствующую серверную службу.
  3. Серверная служба передает подключение к WebSocket.
  4. Шлюз обновляет соответствующее подключение к WebSocket.
  5. После установки пары подключений Управление API сообщения брокеров между клиентским приложением и серверной службой.
  6. Клиентское приложение отправляет сообщение шлюзу.
  7. Шлюз перенаправляет сообщение в серверную службу.
  8. Серверная служба отправляет сообщение шлюзу.
  9. Шлюз перенаправит сообщение клиентскому приложению.
  10. При отключении обеих сторон Управление API завершает соответствующее подключение.

Примечание.

Для подключений на стороне клиента и сервера используется сопоставление типа "один-к-одному".

Операция onHandshake

По протоколу WebSocket, когда клиентское приложение пытается установить подключение WebSocket с серверной службой, сначала отправляет запрос на подтверждение открытия. Каждый API WebSocket в Управлении API поддерживает операцию onHandshake. onHandshake — это неизменяемая, неудаляемая, автоматически созданная системная операция. Операция onHandshake позволяет издателям API перехватывать упомянутые запросы на подтверждение и применять к ним политики Управления API.

Пример экрана: операция onHandshake

Добавление API WebSocket

    1. Перейдите к экземпляру Управления API на портале Azure.
  1. В меню слева выберите API>+ Добавить API.

  2. В разделе "Определение нового API" выберите WebSocket.

  3. В открывшемся диалоговом окне выберите Полный и заполните обязательные поля формы.

    Поле Описание:
    Показать имя Имя, по которому отображается API WebSocket.
    Имя. Имя API WebSocket в необработанном виде. Оно заполняется автоматически при вводе отображаемого имени.
    URL WebSocket Базовый URL-адрес WebSocket, который содержит его имя. Например: ws://example.com/имя_вашего_сокета
    Схема URL-адреса Примите значение по умолчанию
    Суффикс URL-адреса API Добавьте суффикс URL-адреса для идентификации этого API в данном экземпляре Управления API. Он должен быть уникальным в этом экземпляре Управления API.
    Продукты Сопоставьте API WebSocket с определенным продуктом, чтобы опубликовать его.
    Шлюзы Сопоставьте API WebSocket с существующими шлюзами.
  4. Нажмите кнопку Создать.

Тестирование API WebSocket

  1. Перейдите к API WebSocket.

  2. В API WebSocket выберите операцию onHandshake.

  3. Откройте вкладку Тестирование, чтобы перейти к консоли тестирования.

  4. При необходимости укажите параметры строки запроса, необходимые для подтверждения WebSocket.

    Пример тестирования API

  5. Щелкните Подключить.

  6. Просмотрите состояние подключения в разделе Вывод.

  7. Введите значение в поле Полезные данные.

  8. Нажмите Отправить.

  9. Просмотрите полученные сообщения в разделе Вывод.

  10. Повторите предыдущие шаги, чтобы проверить различные полезные данные.

  11. После завершения тестирования щелкните Отключиться.

Просмотр метрик и журналов

Используйте стандартные функции Управления API и Azure Monitor для мониторинга интерфейсов API WebSocket.

  • Просмотр метрик API в Azure Monitor
  • При необходимости включите параметры диагностики, чтобы выполнять сбор и просмотр журналов шлюза Управления API, включая операции API WebSocket.

Например, на следующем снимке экрана показаны последние ответы API WebSocket с кодом 101 из таблицы ApiManagementGatewayLogs. Эти результаты указывают на успешное переключение запросов с протокола TCP на протокол WebSocket.

Журналы запросов API WebSocket

Ограничения

Ниже приведены текущие ограничения поддержки WebSocket в Управление API:

  • API WebSocket пока не поддерживаются на уровне потребления.
  • API WebSocket поддерживают следующие допустимые типы буферов для сообщений: Close, BinaryFragment, BinaryMessage, UTF8Fragment и UTF8Message.
  • В настоящее время политика установки заголовков не поддерживает изменение некоторых известных заголовков, включая заголовки Host, в запросах onHandshake.
  • Во время подтверждения TLS с серверной частью WebSocket служба Управление API проверяет, является ли сертификат сервера доверенным, а также соответствует ли его имя субъекта имени узла. С помощью интерфейсов API HTTP служба Управление API проверяет, является ли сертификат доверенным, но не проверяет соответствие имени узла и субъекта.

Ограничения подключения WebSocket см. в Управление API ограничениях.

Неподдерживаемые политики

Следующие политики не поддерживаются и не могут применяться к операции onHandshake:

  • Макет ответа
  • Получение из кэша
  • Сохранение в кэше
  • Разрешение кросс-доменных вызовов
  • CORS
  • JSONP
  • Установка метода запроса
  • Задание текста
  • Преобразование XML в JSON
  • Преобразование JSON в XML
  • Преобразование XML с помощью XSLT
  • Проверка содержимого
  • Проверка параметров
  • Проверка заголовков
  • Проверка кода состояния

Примечание.

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