Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 将nodejs post参数传递到套接字连接_Node.js_Sockets_Ejs - Fatal编程技术网

Node.js 将nodejs post参数传递到套接字连接

Node.js 将nodejs post参数传递到套接字连接,node.js,sockets,ejs,Node.js,Sockets,Ejs,我正在尝试编写简单的nodejssocket程序来显示连接的用户列表。我在映射username和socket.id时遇到问题 以下是服务器端代码: app.post('/login', function(req, res){ var user = { id: socket.id,//how to get this socket.id? username: req.body.username,

我正在尝试编写简单的nodejssocket程序来显示连接的用户列表。我在映射username和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吗?
或者另一种方法是将post请求信息(用户)传递给io连接块

我建议在使用socket.io时使用json web令牌对用户进行身份验证

这是一篇很好的文章,它解决了你所面临的问题。

谢谢您的建议,但我愿意在此处将一些post请求参数传递给io.connection block。我需要保持用户名和socket.id之间的映射