Websocket ESP8266通过webscoket连接客户端(无库,仅AT命令)
我正在使用AT命令在客户端进行websocket实现。Websocket ESP8266通过webscoket连接客户端(无库,仅AT命令),websocket,esp8266,at-command,Websocket,Esp8266,At Command,我正在使用AT命令在客户端进行websocket实现。 我已将其作为基线并阅读。 硬件:ESP8266+arduino uno 代码: String cmd=“AT+CIPSTART=\”TCP\”,\”;cmd+=SERVER\u IP;cmd+=”\”,81”//启动TCP连接。到端口81上的服务器\u IP 如果(!sendCommand(cmd,“OK”,继续)) 返回; 延迟(2000年); 如果(!sendCommand(“AT+CIPSTATUS”,“OK”,CONTINUE))/
我已将其作为基线并阅读。
硬件:ESP8266+arduino uno 代码:
String cmd=“AT+CIPSTART=\”TCP\”,\”;cmd+=SERVER\u IP;cmd+=”\”,81”//启动TCP连接。到端口81上的服务器\u IP
如果(!sendCommand(cmd,“OK”,继续))
返回;
延迟(2000年);
如果(!sendCommand(“AT+CIPSTATUS”,“OK”,CONTINUE))//检查TCP连接状态。
返回;
cmd=“GET 192.168.43.228:81 HTTP/1.1\r\n”;
cmd+=“主机:192.168.43.228:81\r\n”;
cmd+=“升级:websocket\r\n”;
cmd+=“连接:升级\r\n\r\n”;
如果(!sendCommand(“AT+CIPSEND=“+String(cmd.length()),“>”,继续)){
sendCommand(“AT+CIPCLOSE”,“CONTINUE”);
Serial.println(“连接超时”);
返回;
}
sendCommand(cmd,“确定”,继续);//将数据发送到服务器。
延迟(1000);
readResponseData(“”);
登录arduino端:ESP8266 Demo
AT+RST
OK
bBֆ@⸮Sc⸮⸮⸮ȤS⸮⸮⸮ɥ⸮⸮⸮⸮H⸮
[System Ready
, Vendo:⸮ݹ⸮⸮⸮ɹcom]
AT+GMR
0018000902
OK
AT+CWMODE?
+CWMODE:1
OK
AT+CWMODE=1
no change
AT+CWMODE=1
no change
AT+CIPMUX=0
OK
AT+CWJAP="AndroidAP","xxxx"
OK
Connected to WiFi.
AT+CWJAP="AndroidAP","xxxxx"
OK
AT+CWSAP=?
no this fun
AT+CIFSR
192.168.43.29
OK
Module is ready.
AT+CIPSTART="TCP","192.168.43.228",81
OK
Linked
AT+CIPSTATUS
STATUS:3
+CIPSTATUS:0,"TCP","192.168.43.228",81,0
OK
AT+CIPSEND=100
>
GET 192.168.43.228:81 HTTP/1.1
Host: 192.168.43.228:81
Upgradewrong syntax
ERROR
SEND OK
OK
Unlink
WiFi connected
IP address:
192.168.43.228
Server available at ws://192.168.43.228:81
Accepted new web sockets client at index 0
服务器端:ESP8266 Demo
AT+RST
OK
bBֆ@⸮Sc⸮⸮⸮ȤS⸮⸮⸮ɥ⸮⸮⸮⸮H⸮
[System Ready
, Vendo:⸮ݹ⸮⸮⸮ɹcom]
AT+GMR
0018000902
OK
AT+CWMODE?
+CWMODE:1
OK
AT+CWMODE=1
no change
AT+CWMODE=1
no change
AT+CIPMUX=0
OK
AT+CWJAP="AndroidAP","xxxx"
OK
Connected to WiFi.
AT+CWJAP="AndroidAP","xxxxx"
OK
AT+CWSAP=?
no this fun
AT+CIFSR
192.168.43.29
OK
Module is ready.
AT+CIPSTART="TCP","192.168.43.228",81
OK
Linked
AT+CIPSTATUS
STATUS:3
+CIPSTATUS:0,"TCP","192.168.43.228",81,0
OK
AT+CIPSEND=100
>
GET 192.168.43.228:81 HTTP/1.1
Host: 192.168.43.228:81
Upgradewrong syntax
ERROR
SEND OK
OK
Unlink
WiFi connected
IP address:
192.168.43.228
Server available at ws://192.168.43.228:81
Accepted new web sockets client at index 0
--
…并且没有其他来自服务器的消息,该服务器应该在接受websocket后立即发送消息
请给我一些见解:)我找到了一个解决方案
事实上,我并不知道所有的细节
成功握手后,您需要符合帧要求。它不仅仅是原始文本:)
对于有限的用例(即长度),我找到了一个解决方案
事实上,我并不知道所有的细节
成功握手后,您需要符合帧要求。它不仅仅是原始文本:)
对于有限的用例(即,在长度上,
和数据之间的新行和空格是什么?对于第一个“>”:它是ESP8266发回的提示。否则,仅用于编辑(删除)
和数据之间的新行和空格是多少?对于第一个“>”:它是ESP8266返回的提示。否则仅用于编辑(已删除)