Php 强制注销用户:Socket.IO
我已经用PHP和node.js开发了一个应用程序。我的大多数应用程序都是用PHP构建的,但是在我的Web应用程序的实时部分,我使用node.js和socket.io,我的问题是 如何处理登录到多客户端的用户?我计划在用户尝试从其他客户端登录时强制注销。有可能达到这种逻辑吗?如何实现?thnxPhp 强制注销用户:Socket.IO,php,node.js,socket.io,Php,Node.js,Socket.io,我已经用PHP和node.js开发了一个应用程序。我的大多数应用程序都是用PHP构建的,但是在我的Web应用程序的实时部分,我使用node.js和socket.io,我的问题是 如何处理登录到多客户端的用户?我计划在用户尝试从其他客户端登录时强制注销。有可能达到这种逻辑吗?如何实现?thnx io.sockets.on('connection',function(socket) { var secret = socket.manager.handshaken[socket.id].que
io.sockets.on('connection',function(socket) {
var secret = socket.manager.handshaken[socket.id].query.secret;
clients[secret] = socket;
console.log('Client Connected');
// Notification
app.on("notification",function(data){
socket = clients[data.recipient];
if(socket != undefined){
console.log('worked');
socket.emit('notify',data);
}
});
});
您可以通过握手将每个用户的唯一id传递给套接字,并在服务器上维护一个全局对象,该对象包含所有连接的用户id及其socket.id(键/值对) 当客户端连接时,请检查对象是否具有具有用户id的密钥,这表示该用户已从其他客户端连接
- 如果为false,则向对象添加用户id和套接字id
- 如果为true,则可以轻松地从对象获取旧连接的socket.id并关闭此连接。然后在对象中设置新客户端的socket.id
user\u id\u
var user_connected = {};
io.sockets.on('connection',function(socket) {
// Check if user is already connected
if(user_connected.hasOwnProperty(user_id_here)) {
// If true, disconnect previous connection
user_connected['user_id_here'].disconnect();
}
// Add current socket to object
user_connected['user_id_here'] = socket;
var secret = socket.manager.handshaken[socket.id].query.secret;
clients[secret] = socket;
console.log('Client Connected');
// Notification
app.on("notification",function(data){
socket = clients[data.recipient];
if(socket != undefined){
console.log('worked');
socket.emit('notify',data);
}
});
});
你能举个例子吗?