2015-12-02 5 views
2

Я пытаюсь отправить данные на сервер с помощью websocket в 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 

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

ответ

1

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 
+0

Спасибо! Но ответа пока нет. Я буду продолжать пытаться. –

+0

Вы уверены, что только завершаете команды с помощью \ r? – cagdas

1

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

Некоторые код из приведенной выше ссылке, чтобы отправить запрос 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; 
} 
+0

Как этот ответ связан с websocket? – mpromonet

1

Попробуйте удалить Ws URI после подтверждения связи GET. Если у вас нет пути, сделайте это «/». Кроме того, если ваш сервер websocket не работает с 80, вам нужно будет обозначить его в заголовке после атрибута хоста.

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