WebSocket握手后Chrome断开连接,是域名不匹配还是Chrome漏洞?

3 投票
1 回答
2262 浏览
提问于 2025-04-15 18:39

我用Python做了一个简单的WebSocket服务器,但在Chrome 4.0.249.78开发版中,它总是在握手后断开连接。为了确认不是我代码的问题,我用在这个链接找到的WebSocket服务器进行测试,结果也是一样的(见下文)。

listening...
connection!
GET / HTTP/1.1
Upgrade: WebSocket
Connection: Upgrade
Host: localhost:1234
Origin: http://localhost


handshaken
got:
got:
Traceback (most recent call last):
  File "test.py", line 44, in <module>
    start_server()
  File "test.py", line 18, in start_server
    interact(csock, tick)
  File "test.py", line 40, in interact
    send_data(client, "clock ! tick%d" % (tick))
  File "test.py", line 25, in send_data
    return client.send(str)
socket.error: [Errno 10053] An established connection was aborted by the softwar
e in your host machine
Press any key to continue . . .

这里是JavaScript代码...

if ("WebSocket" in window) {
    var ws = new WebSocket("ws://localhost:1234");
    ws.onopen = function() {
        alert('opened');
        ws.send("test");
    }
    ws.onmessage = function (evt) {
        alert('hit');
        $('#game').html(evt.data);
    }
    ws.onclose = function () {
        $('#game').html('Lost Connection');
    }
} else {
    $('#game').html('No support');
}

有没有其他人遇到这个问题,还是说这可能是域名不匹配的问题呢?

1 个回答

2

我把Chrome浏览器升级到了一个新版本(4.0.302.3 dev),现在在控制台里能看到正确的JavaScript错误提示。确实是因为域名不匹配的问题。

如果你也遇到同样的问题,记得先更新你的浏览器,然后再检查一下你的网址。

撰写回答