Javascript 如何确保WebSocket的readyState已变为CLOSED(3)?

Javascript 如何确保WebSocket的readyState已变为CLOSED(3)?,javascript,websocket,Javascript,Websocket,假设创建了一个websocket,如下所示: var ws = new WebSocket(url); 另外,假设通过这个web套接字进行的通信也可以正常工作 已经发现,使用以下方法关闭此WebSocket会将其readyState设置为关闭(2),但它永远不会到达readyState关闭(3) ws.close(); 问题: -当这种情况发生在消息事件上时,由于WebSocket连接尚未关闭,因此会继续命中。如何确保其关闭状态,以便onmessage停止命中 WebSocket读取状态读取

假设创建了一个websocket,如下所示:

var ws = new WebSocket(url);
另外,假设通过这个web套接字进行的通信也可以正常工作

已经发现,使用以下方法关闭此WebSocket会将其readyState设置为关闭(2),但它永远不会到达readyState关闭(3)

ws.close();
问题: -当这种情况发生在消息事件上时,由于WebSocket连接尚未关闭,因此会继续命中。如何确保其关闭状态,以便onmessage停止命中

WebSocket读取状态读取:

onmessage事件继续发生,因为WebSocket连接尚未关闭

这决不能发生。发件人:

当收到WebSocket消息[…]时,[和]如果
readyState
属性的值不是
OPEN
,则中止[任何进一步的]步骤

如果套接字的readystate已经关闭,它将不再发出任何消息

readyState设置为
关闭
,但它永远不会到达
关闭


这对我来说意味着。特别是,当结束握手已经开始时,这种情况似乎会发生,但服务器没有使用关闭控制框进行响应。

您遇到过这种行为吗?我无法确认“由于WebSocket连接尚未关闭,onmessage事件继续发生”是。我遇到了这个问题。WebSocket连接处于“关闭”状态。我不知道它是如何从“关闭”变为“关闭”的。这在所有浏览器中都会发生吗?你到底需要这个做什么?快速修复:如果(this.readyState!=1)返回,则添加
到您的onmessage处理程序。