2015-04-27 46 views

回答

0

既然是解决这个问题不Socket.io当前版本的工作中存在的库,我已经决定去与以下几点:

我用MongoStore作为我的会话存储:

var sid = cookie.parse(socket.handshake.headers.cookie)['connect.sid']; 
    sessionStore.get(sid.split('.')[0].split(':')[1], function (err, session) { 
     if (session.passport.user) { 
      console.log('io found user logged in'); 
     } else { 
      console.log('io found no user'); 
     } 
    }) 

如果我发现用户已经登录,我会在Redis中存储他们的用户ID和socket.io连接信息。当我需要将通知推送给用户时,我会向redis查询他们的用户ID并发出我找到的套接字ID。当用户断开连接时,我删除其用户标识的条目。

0

Here如何用Socket.IO实现身份验证的很好的解释,你读过吗?