このコードによって接続が確立または切断されたかどうかを追跡できます
console.log('a user connected');
socket.on('disconnect', function () {
console.log('user disconnected');
});
まあ、それは結構です。しかし、どのユーザーが接続またはオフラインになったかをどのように判断できますか?私のクライアントはPHP/HTML
なので、ユーザーIDを持っています。
クライアントに特定のユーザーIDがある場合は、それらをsocket.ioサーバーに送信する必要があります。例えば。あなたができるクライアント側で
<script>
const socket = io();
socket.emit('login',{userId:'YourUserID'});
</script>
そしてサーバー上にあなたは次のようなものを置きます
const users = {};
io.on('connection', function(socket){
console.log('a user connected');
socket.on('login', function(data){
console.log('a user ' + data.userId + ' connected');
// saving userId to array with socket ID
users[socket.id] = data.userId;
});
socket.on('disconnect', function(){
console.log('user ' + users[socket.id] + ' disconnected');
// remove saved socket from users object
delete users[socket.id];
});
});
これで、ソケットIDとユーザーIDをペアにして操作できます。