2017-04-21 122 views
0

我有一个嵌入式设备,它有一个gsm模块(Quectel M95F)。我可以创建套接字连接并使用模块的AT命令集使用HTTP Rest API。现在我试图实现一个WebSocket客户端应用程序,但是我找不到没有SSL的测试服务器。在嵌入式系统上使用gsm模块的WebSocket客户端实现

WebSocket.org有一个回声服务,它可以很好地与浏览器配合使用,但不能在没有SSL的情况下连接到它。这是该示例的页面: http://www.websocket.org/echo.html

我甚至无法在GSM模块上使用GET方法进行握手请求。当我尝试使用这种模块工作时,是否有任何提示需要了解?我只找到一个Arduino库,但距离我的系统太远了。我试图在浏览器上查看发送和接收的数据包以查找该echo服务器。然后我尝试使用POSTMAN发送Hand Shake数据包,但我总是收到Bad Request错误。

+0

您是否想要对您的嵌入式设备实施SSL/TLS,或者您在询问关于未加密的websocket回显服务器? – Defozo

回答

0

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 traffi c)出于安全原因的格式,将您的流量与建议类型进行比较会更好。