socket.io チャット アプリケーションの redis ストアにユーザー名と SocketID のペアを保存しています。
ユーザーが切断したら、redis ストアからユーザー名とソケット ID のペアを削除する必要があります。キーから値を取得する方法を見てきましたが、値からキーを取得することはありません。出来ますか?または、値だけからキーと値のペアを削除するにはどうすればよいですか。これが私のコードです
接続時にストアに追加する場合
socket.on('username', function (username) {
client.set(username, socket.id, function (err) {
console.log(username + ":" + socket.id);
});
});
切断の場合、クライアントは切断がいつ発生するかわかりません。インターネット接続が失われたために発生する可能性がありますが、ソケットが切断されると、常に「切断」イベントが発生します。この場合、ユーザー名とソケット ID のペアを削除する必要があります。
socket.on('disconnect', function () {
// dont know the username??
client.del(username, socket.id, function (err) {
if (err)
console.log(err);
else {
socket.disconnect();
console.log(socket.id + " DISCONNECTED");
}
});
});