如何关闭所有 websocket 连接
How to close all websocket connections
我正在尝试关闭所有 websocket 连接。不幸的是我总是得到错误:
TypeError: s.close is not a function
我很少用javascript,找不到错误...
var sockets = [];
function addClient() {
var socket = new WebSocket("ws://localhost:8080/WebsocketHome/notification");
socket.onmessage = function (event){
[...]
};
sockets.push(socket);
}
function removeAllClients(){
for(var s in sockets){
s.close();
}
}
for
给你键(在这种情况下是:数组索引),而不是值;你需要:
for(s in sockets)
sockets[s].close();
难以置信,但是这段代码:
function removeAllClients(){
for(var s in sockets){
s.close();
}
}
遍历索引。所以我现在这样做:
function removeAllClients(){
sockets.forEach(function(s) {
s.close();
});
}
并且有效。我真的很惊讶...
我正在尝试关闭所有 websocket 连接。不幸的是我总是得到错误:
TypeError: s.close is not a function
我很少用javascript,找不到错误...
var sockets = [];
function addClient() {
var socket = new WebSocket("ws://localhost:8080/WebsocketHome/notification");
socket.onmessage = function (event){
[...]
};
sockets.push(socket);
}
function removeAllClients(){
for(var s in sockets){
s.close();
}
}
for
给你键(在这种情况下是:数组索引),而不是值;你需要:
for(s in sockets)
sockets[s].close();
难以置信,但是这段代码:
function removeAllClients(){
for(var s in sockets){
s.close();
}
}
遍历索引。所以我现在这样做:
function removeAllClients(){
sockets.forEach(function(s) {
s.close();
});
}
并且有效。我真的很惊讶...