請看看這一個SRC-代碼:如何刪除WebSocket連接的OnClose正常
var clients = {}; // map<string, Connection> clients
var clientsReverse = {}; // map<Connection, string> clientsReverse
webSocketServer.on('connection', function(newclient) { // newclient is connection Object
newclient.on('message', function(message) {
var data = JSON.parse(message);
if (clients[data.name] === undefined) {
clients[data.name] = newclient;
clientsReverse[newclient] = data.name;
}
// ...
});
newclient.on('close', function(){
log(clientsReverse[newclient]); // prints always the same string
// remove closed connection
var key = clientsReverse[newclient];
delete clientsReverse[newclient];
delete clients[key];
});
});
我如果客戶走了刪除的連接。正如你所看到的,我爲此使用了兩個數組,但不幸的是它不起作用。如果我試圖斷開3個隨機客戶端,日誌打印總是相同的名稱...
任何想法我做錯了什麼?
它是'object','array'的語法是'[]';我相信'newclient'就像是一個'object',而不是'string'或'number',它可能只是將'[object object]'設置爲'clientsReverse','newclient'應該包含一些獨特的像'id','name'這樣的變量...等等。記錄'newclient',看看它包含了什麼,然後使用'newclient.id'這樣的關鍵字。 – fuyushimoya
@fuyushimoya哦,好的。我知道它是關聯數組或映射。 newclient是一個對象。 – dit