我们可以通过这段代码追踪连接是建立还是断开
console.log('a user connected');
socket.on('disconnect', function () {
console.log('user disconnected');
});
嗯,没关系。但是我们如何确定哪些用户连接或离线。我的客户端是用 PHP/HTML
编写的,所以他们有一个用户 ID。
最佳答案
如果您的客户端有特定的用户 ID,他们需要将它们发送到 socket.io 服务器。例如。在客户端你可以做
// Browser (front-end)
<script>
const socket = io();
socket.emit('login',{userId:'YourUserID'});
</script>
在服务器上你会放一些类似的东西
// 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];
});
});
现在您可以将套接字 ID 与您的用户 ID 配对并使用它。
关于node.js - socket.io 判断用户是在线还是离线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32134623/