| Отправка запросов WebSocket |
|
| Добавил(а) microsin | ||||||||||||
|
Ниже описано несколько способов отправки WebSocket-запросов с помощью утилит командной строки curl, websocat [3] и netcat. [curl] Для Ubuntu/Debian, установка curl с WebSocket поддержкой (из исходников, гарантированно свежая версия): 1. Удалите старый curl если он был установлен из пакета: sudo apt remove curl -y 2. Установите зависимости: sudo apt update 3. Скачайте исходники: git clone https://github.com/curl/curl.git 4. Компиляция: cd curl 5. Обновите пути библиотек: sudo ldconfig Пример отправки запросов: # Если ESP32 работает на порту 80 # Если ESP32 работает на порту 81 [websocat] В Ubuntu есть несколько надёжных способов установки websocat. Лучший для вас зависит от того, хотите ли вы получить готовый файл или собрать программу из исходного кода. Для быстрого ознакомления основные методы представлены в таблице ниже:
Способ 1: Установка с помощью готового файла Это самый быстрый (и рекомендованный) способ, если у вас обычный компьютер (x86_64/amd64). 1. Скачайте последнюю версию websocat напрямую с GitHub и поместите её в системную директорию: sudo wget -qO /usr/local/bin/websocat \ 2. Дайте файлу права на выполнение: sudo chmod a+x /usr/local/bin/websocat 3. Проверьте установку: websocat --version Если команда не найдена, проверьте, что директория /usr/local/bin есть в вашей переменной окружения PATH (командой echo $PATH). Способ 2: Установка через Cargo (сборка из исходного кода) Этот метод универсален и работает на разных архитектурах, но требует больше шагов и устанавливает компилятор Rust. 1. Установите Rust и Cargo, если они еще не установлены, выполнив в терминале: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh После установки перезапустите терминал или выполните source $HOME/.cargo/env, чтобы добавить Cargo в PATH. 2. Установите websocat с поддержкой SSL: cargo install --features=ssl websocat 3. После завершения сборки программа будет доступна по команде websocat из вашей домашней директории (~/.cargo/bin/) . Возможные проблемы при сборке: если сборка завершилась ошибкой из-за отсутствия линкера cc, то установите пакет build-essential: sudo apt install build-essential Для работы с SSL также может потребоваться пакет libssl-dev. Способ 3: Запуск через Docker Если вам нужно просто протестировать websocat, не устанавливая его в систему, используйте готовый образ Docker. docker run --rm -it ghcr.io/vi/websocat:nightly --version Или сразу запустите клиент для тестового сервера: docker run --rm -it ghcr.io/vi/websocat:nightly wss://echo.websocket.events Простой тест работы. После установки проверьте, что всё работает, подключившись к публичному эхо-серверу: websocat wss://echo.websocket.events Введите текст и нажмите Enter — вы должны увидеть ответ-эхо. Для выхода нажмите Ctrl+C. Если вы планируете часто работать с WebSocket через командную строку и хотите, чтобы программа была доступна всем пользователям системы, подойдёт первый способ. Если же вы используете другие инструменты на Rust или нужна конкретная версия — выберите второй способ. Пример отправки запроса WebSocket на сервер ESP32-S3 на порт 80 по умолчанию (здесь имя esp-home.local разрешается в IP-адрес с помощью протокола MDNS [1]): websocat ws://esp-home.local/ws \ [netcat] Команда netcat, аналогичная показанному выше примеру для websocat: printf "GET /ws HTTP/1.1\r\nHost: esp-home.local\r\nUpgrade: websocket\r\nConnection: \ [Ссылки] 1. ESP-IDF mDNS. |