Веб-сокеты ESP8266

Я пытаюсь отправить данные на сервер с веб-сокетом в ESP8266, но рукопожатие не работает.

Я отправляю следующую последовательность AT-команд:

AT+RST
AT+CWMODE=1
AT+CIPMODE=0
AT+CIPMUX=1
AT+CWJAP="ssid_my_network","password"
AT+CIPSTART=4,"TCP","ip_server",port
AT+CIPSEND=4,data_lenght

В этот момент я отправляю заголовок:

GET ws:ip_server HTTP/1.1\r\n
Host: ip_server\r\n
Upgrade: websocket\r\n
Connection: Upgrade\r\n
Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==\r\n
Sec-WebSocket-Version: 13\r\n

Но я не получаю ответ от сервера. Что я делаю не так?


person Allef Pablo Araujo    schedule 02.12.2015    source источник


Ответы (3)


Заголовки HTTP должны заканчиваться пустой строкой. Вам нужно отправить еще \r\n.

GET ws:ip_server HTTP/1.1\r\n
Host: ip_server\r\n
Upgrade: websocket\r\n
Connection: Upgrade\r\n
Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==\r\n
Sec-WebSocket-Version: 13\r\n
\r\n
person gre_gor    schedule 02.12.2015
comment
Благодарю вас! Но я пока не получаю никакого ответа. Я буду пытаться. - person Allef Pablo Araujo; 03.12.2015
comment
Вы уверены, что завершаете работу только с командами \r ? - person cagdas; 03.10.2016

Я думаю, вы можете попробовать использовать WiFiClient вместо WebSocket (например, это)

Некоторый код из приведенной выше ссылки для отправки запроса http GET:

// Perform an HTTP GET request to a remote page
bool getPage() {

// Attempt to make a connection to the remote server
  if ( !client.connect(http_site, http_port) ) {
    return false;
  }

  // Make an HTTP GET request
  client.println("GET /index.html HTTP/1.1");
  client.print("Host: ");
  client.println(http_site);
  client.println("Connection: close");
  client.println();

  return true;
}
person Ken    schedule 16.05.2016
comment
Как этот ответ связан с веб-сокетом? - person mpromonet; 07.08.2016

Попробуйте удалить ws uri после рукопожатия запроса GET. Если у вас нет пути, сделайте его "/" . Кроме того, если ваш веб-сервер не обслуживается с 80, вам необходимо указать его в заголовке после атрибута хоста.

Мы можем сказать, что между узлами произошло возможное несоответствие версий, но ответа нет. Итак, у нас есть крошечная скрытая проблема, такая как прокси и т. д.

person cagdas    schedule 20.08.2016