Уебсокети ESP8266

Опитвам се да изпратя данни към сървър с websocket в 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
Как този отговор е свързан с websocket? - person mpromonet; 07.08.2016

Опитайте да премахнете ws uri след ръкостискане GET заявка. Ако нямате път, направете го "/". Също така, ако вашият websocket сървър не обслужва от 80, ще трябва да го обозначите в заглавката след атрибута на хоста.

Можем да кажем, че е възникнало възможно несъответствие на версията между партньори, но няма отговор. Така че имаме малък скрит проблем като прокси и т.н.

person cagdas    schedule 20.08.2016