将垃圾发送到服务器的 Websocket

Websockets sending garbage to server

本文关键字:服务器 Websocket      更新时间:2023-09-26

我已经创建了一个从我的网站到我的家庭服务器的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");
     };

此外,运行上述脚本时,警报框永远不会显示。是什么导致打印所有连接详细信息,如何让它发送一个简单的字符串并成功弹出警报框?

您的 WebSocket 可能永远不会从 CONNECT 过渡到 OPEN,因此永远不会调用您的 onopen 函数。您需要确保您的 python 脚本正在服务器端通过 Web 套接字握手。