C-使用GSM模块在嵌入式系统上使用GSM模块实现的WebSocket客户端实现



i具有具有GSM模块(Quectel M95F(的嵌入式设备。我可以创建套接字连接,并使用模块的命令集使用HTTP REST API。现在,我正在尝试实现WebSocket客户端应用程序,但是我找不到没有SSL的测试服务器。

WebSocket.org具有回声服务,它可以与浏览器配合使用,但是如果没有SSL,则无法连接到它。这是该示例的页面:http://www.websocket.org/echo.html

我什至无法在GSM模块上使用GET方法提出握手请求。当我试图与这种模块配合使用时,我需要知道任何技巧吗?我只找到了一个Arduino库,但它离我的系统太远了。我尝试观看该回声服务器上发送和接收的数据包。然后,我尝试使用邮递员发送手摇动数据包,但我总是会遇到不好的请求错误。

ws://echo.websocket.org无ssl工作,这是我的示例页面:

<!DOCTYPE html>
<meta charset="utf-8" />
<title>WebSocket Test</title>
<script>
var wsServ = "ws://echo.websocket.org";
function initWebSockets()
{
    websocket = new WebSocket(wsServ);
}
 
window.addEventListener("load", initWebSockets, false);
</script>

这是服务器响应:

HTTP/1.1 101 Web Socket Protocol Handshake
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: content-type, authorization, x-websocket-extensions, x-websocket-version, x-websocket-protocol
Access-Control-Allow-Origin: null
Connection: Upgrade
Date: Tue, 18 Jul 2017 22:06:46 GMT
Sec-WebSocket-Accept: qn0lFK1Dg0wZ4esiqXliCDB2lTg=
Server: Kaazing Gateway
Upgrade: websocket

这也是我的请求标题:

GET / HTTP/1.1
Host: echo.websocket.org
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Sec-WebSocket-Version: 13
Origin: null
Sec-WebSocket-Extensions: permessage-deflate
Sec-WebSocket-Key: av25rwzrdCw9qTswx7bmTA==
Connection: keep-alive, Upgrade
Pragma: no-cache
Cache-Control: no-cache
Upgrade: websocket

Websocket协议规范(RFC 6455(建议严格强制执行握手(HTTP流量(格式出于安全原因,如果您将流量与建议类型进行比较会更好。

最新更新