STM32+ESP8266 AT指令模拟建立websocket服务器和客户端
1.客户端
1.在建立TCP连接后,客户端需要发送握手升级通信,客户端发送
GET / HTTP/1.1
Connection: Upgrade
Upgrade: websocket
Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
Sec-WebSocket-Version: 13
再服务端回复后
HTTP/1.1 101 Switching Protocols
Connection: Upgrade
Upgrade: websocket
Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=
判断 Sec-WebSocket-Accept是否正确 就可以确认链接
1.单片机 先生成一个16字节的随机码,通过base64编码生成24字节的 Sec-WebSocket-Key
2.发送到服务端,服务端会回复Sec-WebSocket-Accept
3.验证 单片机对Sec-WebSocket-Key拼接固定字符258EAFA5-E914-47DA-95CA-C5AB0DC85B11,SHA1哈希值计算 然后BASE64编码得到28字节的KEY,与服务器发来的Sec-WebSocket-Accept对比 相同即是认为连接。
2服务端
1.接收客户端发来的握手协议,剥离出Sec-WebSocket-Key,拼接固定字符258EAFA5-E914-47DA-95CA-C5AB0DC85B11,SHA1哈希值计算,BASE64编码得到28字节的key
2.拼接成
HTTP/1.1 101 Switching Protocols
Connection: Upgrade
Upgrade: websocket
Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=
回复给客户端
3帧格式
发送和接收都要按照帧格式,客户端发送需要添加掩码,服务器回复不需要掩码,发送字节数在125上下时是有区别的,websocket如果使用JSON格式,还需添加。
更多推荐



所有评论(0)