我正在尝试编写简单的nodejs套接字程序来显示用户连接的列表。我在保持用户名和socket.id映射时遇到问题。
这是服务器端代码:
app.post('/login', function(req, res){
var user = {
id: socket.id,//how to get this socket.id?
username: req.body.username,
loggedInTime: new Date()
};
connectionsArray.push(user);
res.render('main');
});
io.on('connection', function(socket){
console.log('Connecting user ' + socket.id);
if (connectionsArray.length > 0) {
setInterval(function(){
io.sockets.emit('connectionsArray', connectionsArray);
},1000);
}
socket.on('disconnect', function() {
connectionsArray = connectionsArray.map(function(conn){
return conn.id != socket.id;
});
console.log('user disconnected with' + socket.id);
});
});
有人可以帮我在post请求中获取socket.id吗? 或者其他方式是将发布请求信息(用户)传递给io.connection块?
答案 0 :(得分:0)
我建议在使用socket.io时使用json web令牌对用户进行身份验证。
这是一篇很好的文章,可以解决您面临的问题。 Token-based Authentication with Socket.IO