socket.io determine if a user is online or offline

If your clients have specific user IDs they need to send them to socket.io server. E.g. on client side you can do

// Browser (front-end)
<script>
 const socket = io();
 socket.emit('login',{userId:'YourUserID'});
</script>

And on server you will put something like

// server (back-end)
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 object 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];
  });
});

Now you can pair socket ID to your user ID and work with it.

Leave a Comment