我们可以跟踪此代码是建立还是断开连接
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 array
const index = users.indexOf(socket.id);
if (index > -1) {
users.splice(index, 1);
}
});
});
现在您可以将套接字ID与您的用户ID配对并使用它。