Работа с API-шлюзом по протоколу WebSocket
Чтобы установить соединение с API-шлюзом по протоколу WebSocket:
Если созданные ресурсы больше не нужны, удалите их.
Перед началом работы
Зарегистрируйтесь в Yandex Cloud и создайте платежный аккаунт:
- Перейдите в консоль управления
, затем войдите в Yandex Cloud или зарегистрируйтесь. - На странице Yandex Cloud Billing
убедитесь, что у вас подключен платежный аккаунт, и он находится в статусеACTIVE
илиTRIAL_ACTIVE
. Если платежного аккаунта нет, создайте его и привяжите к нему облако.
Если у вас есть активный платежный аккаунт, вы можете создать или выбрать каталог, в котором будет работать ваша инфраструктура, на странице облака
Подробнее об облаках и каталогах.
Необходимые платные ресурсы
В стоимость ресурсов входит плата за количество запросов к API-шлюзу и исходящий трафик (см. тарифы Yandex API Gateway).
Создайте API-шлюз
- В консоли управления
выберите каталог, в котором необходимо создать API-шлюз. - В списке сервисов выберите API Gateway.
- Нажмите кнопку Создать API-шлюз.
- В поле Имя введите
websocket
. - (Опционально) В поле Описание введите описание.
- В блок Спецификация добавьте спецификацию:
openapi: 3.0.0 info: title: Test API version: 1.0.0 paths: /connections: x-yc-apigateway-websocket-message: summary: Get connection identifier operationId: getConnectionID parameters: - name: X-Yc-Apigateway-Websocket-Connection-Id in: header description: Websocket connection identifier required: true schema: type: string responses: '200': description: Connection identifier content: text/plain: schema: type: string x-yc-apigateway-integration: type: dummy http_code: 200 http_headers: Content-Type: application/json content: text/plain: '{"connection_id":"{X-Yc-Apigateway-Websocket-Connection-Id}"}'
- Нажмите кнопку Создать.
Установите соединение
- Откройте терминал и установите утилиту wscat
:npm install -g wscat
- Установите соединение с API-шлюзом. Вместо
<идентификатор_API-шлюза>
укажите идентификатор API-шлюза.wscat -c wss://<идентификатор_API-шлюза>.apigw.yandexcloud.net/connections Connected (press CTRL+C to quit)
- Введите любое сообщение и нажмите
Enter
.
Сообщение отправится через установленное соединение в API-шлюз. API-шлюз вызовет интеграцию и отправит ответ — вы увидите его на экране. В ответе будет идентификатор установленного соединения:
> Hello!
< {"connection_id":"<идентификатор_соединения>"}
Проверьте работу соединения
Откройте новое окно в терминале и проверьте работу соединения, используя полученный идентификатор соединения.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
- Получите информацию об установленном соединении:
yc serverless api-gateway websocket get <идентификатор_соединения>
- Отправьте сообщение на клиентскую сторону:
yc serverless api-gateway websocket send <идентификатор_соединения> --data Hello!
- Закройте соединение:
yc serverless api-gateway websocket disconnect <идентификатор_соединения>
- Перейдите в окно терминала с установленным соединением. Там должна отобразиться следующая информация:
wscat -c wss://<идентификатор_API-шлюза>.apigw.yandexcloud.net/connections Connected (press CTRL+C to quit) > Hello! < {"connection_id":"<идентификатор_соединения>"} < Hello! Disconnected (code: 1000, reason: "")
Как удалить созданные ресурсы
Чтобы перестать платить за созданные ресурсы, удалите API-шлюз.