如何使用带有node.js和express的socket.io获取请求数据?

Guy*_*guy 10 node.js express socket.io

所以我使用带有socket.io的express有这个问题.我认为这是非常自我解释; 我只需要获取会话并向socket.io请求参数数据.这不能在客户端进行,因为有些房间是私人的.有解决方案吗

io.sockets.on('connection', function (socket) {
  socket.join(ROOM ID)

  socket.on('send message', function(data) {
    NEED USER ID STORED IN session.user
  }
})

app.get('/:roomid', function (req, res) {
  //req.session.user = THE USER ID
  //req.params.roomid = THE ROOM ID
})
Run Code Online (Sandbox Code Playgroud)

3rd*_*den 5

Socket.IO 0.7.7~在套接字上引入了一个新属性,handshake这是我们在客户端执行初始握手请求时收集的数据.它包含标题,IP和其他一些东西.

这个wiki https://github.com/LearnBoost/socket.io/wiki/Authorizing轻轻触及主题.

  • 至少在我的NodeJS上,"握手"包括对socket.io的调用的查询参数:'..."url":"/ socket.io/1/?t=1355054837418"......',所以我必须从'referer'获取查询字符串参数,例如,获取"id"参数:url.parse(socket.handshake.headers.referer,true).query.id (5认同)