編譯環境:Windows系統下的keil5。在讓esp8266與服務器建立Tcp長鏈接,進入透傳模式后,我發送過去的握手協議如下:
temp = esp8266_stringCopy(buff_temp, "GET / HTTP/1.1\r\n", 0,16);
temp = esp8266_stringCopy(buff_temp, "Host: 192.168.2.111:9090\r\n", temp,26);
temp = esp8266_stringCopy(buff_temp, "Upgrade: websocket\r\n", temp,20);
temp = esp8266_stringCopy(buff_temp, "Connection: Upgrade\r\n", temp,21);
temp = esp8266_stringCopy(buff_temp, "Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==\r\n", temp,45);
temp = esp8266_stringCopy(buff_temp, "Sec-WebSocket-Version: 13\r\n\r\n", temp,27);
esp8266_printfL(buff_temp, temp);
這時候websocket服務端返回
fb88c2ce3f8e633efc7efa6fcc2572d.png (3.93 KB, 下載次數: 39)
下載附件
2023-10-27 16:50 上傳
為什么還會有400呢?
因為我用本地IP創建了一個websocket服務器,給它發握手協議時,它就返回一個400
這時候我用抓包工具看了一下服務器響應的數據
1698397673891.jpg (12.26 KB, 下載次數: 33)
下載附件
2023-10-27 17:08 上傳
然后我想看一下我到底發出去的是什么東西,就發給Tcp服務器,看到是下面這樣的
GET / HTTP/1.1
Host: 192.168.2.189:8899
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
Sec-WebSocket-Version: 13
我覺得好像沒問題啊,websocket握手協議好像就是這樣發的啊,真的不知道問題出在哪里,求帶濕指點指點。
|