我已经创建了一个WebSockets连接,从我的网站到我的家庭服务器,运行在端口3000上监听的python脚本。我可以连接到服务器,就像我加载页面时客户端连接的服务器日志一样。但是每次我连接到服务器时,服务器都会自动触发我的服务器的receivedMessage()函数,并打印出一堆关于连接的垃圾。服务器日志如下:
A new client has connected
Message Received: GET / HTTP/1.1
Host: [Insert host name and port here]
Connection: Upgrade
Pragma: no-cache
Cache-Control: no-cache
Upgrade: websocket
Origin: null
Sec-WebSocket-Version: 13
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.99 Safari/537.36
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-US,en;q=0.8
Sec-WebSocket-Key: 3DUmKD70X9p19IpLPjS2jg==
Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits
连接到服务器的代码片段很简单:
var theSocket = new WebSocket("ws://[insert host name]:3000");
theSocket.onopen = function() {
// Web Socket is connected, send data using send()
theSocket.send("blah");
alert("SENT");
};
运行上述脚本时,警报框也不会显示。是什么导致打印所有连接细节,如何让它发送一个简单的字符串并成功弹出警告框?
答案 0 :(得分:1)
您的WebSocket可能永远不会从CONNECTING转换为OPEN,因此永远不会调用您的onopen函数。您需要确保您的python脚本通过服务器端的Web Socket Handshake。