• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

esp8266 передача данных по websocket через at-команды

verbmaks

New member
Исходные данные: на основном контроллере (STM32) работает основная логика. Есть необходимость передачи данных с контроллера на сервер через вебсокет. Для этой цели взяли обычную ESP-01. Подключиться к вебсокету я смог двумя запросами:

AT+CIPSTART="TCP","192.168.100.5",5000

AT+CIPSEND=119
GET /socket.io/ HTTP/1.1
Origin: 192.168.100.20
Connection: Upgrade
Host: 192.168.100.5:5000
Upgrade: websocket


После этого запроса сервер отвечает и передает sid

+IPD,427:HTTP/1.1 200 OK
Set-Cookie: io=05ff7d0da3444cc3a099929011cfc599; path=/; SameSite=Lax
Content-Type: application/octet-stream
Access-Control-Allow-Origin: 192.168.100.20
Access-Control-Allow-Credentials: true
Content-Length: 154
Date: Mon, 23 Nov 2020 12:45:54 GMT


Затем выполняется тот же запрос, но уже с подставленными параметрами

AT+CIPSEND=176
GET /socket.io/?transport=websocket&sid=05ff7d0da3444cc3a099929011cfc599 HTTP/1.1
Origin: 192.168.100.20
Connection: Upgrade
Host: 192.168.100.5:5000
Upgrade: websocket


После чего сервер отвечает:

+IPD,234:HTTP/1.1 101 Web Socket Protocol Handshake
Upgrade: WebSocket
Connection: Upgrade
WebSocket-Origin: 192.168.100.20
WebSocket-Location: ws://192.168.100.5:5000/socket.io/?transport=websocket&sid=05ff7d0da3444cc3a099929011cfc599


С вебом я знаком слабо, но, насколько я понял из описания вебсокета, после "рукопожатия" вебсокет готов принимать данные, но при попытке отправить через AT+CIPSEND "Hello world", сервер выдает ошибку, так как пытается прочитать Hello как запрос.

Отсюда вопрос: возможно у кого-то был опыт реализации подобной схемы, каким образом необходимо передавать данные на вебсокет с помощью AT-команд?
 
Сверху Снизу