在nodeJS中获取SESSIONID

现在,在使用nodejs和socket.io几个小时之后,我遇到了更多的问题 – 一个是,我需要在node.js中获取sessionID,使用app.get('/' ... – 因为这个事件似乎不会触发socket.io连接时,它只会触发.on('connection', function( ...

 var express = require('express')() express.set('port', process.env.PORT || 8080) var server = require('http').createServer(express) var socket = require('socket.io').listen(server) server.listen(express.get('port')) // this event is fired, get('/', ... isnt! server.on('connection', function(stream) { // ?? } ) 

会话最初由PHP应用程序在用户login时创build。会话数据存储在数据库中,我需要访问该数据的密钥是SESSION ID。 最简单的方法是什么? 就像上面提到的,我发现了一些使用app.get('/' ...例子,但是我app.get('/' ...无法得到这个事件。

谢谢。

如果会话数据被存储为cookie(最可能),那么您应该能够在套接字握手期间重新parsing数据。 我在这个答案上发布了代码,但是也在这里复制了代码:

 io.configure(function () { io.set('authorization', function (handshakeData, callback) { var cookie = handshakeData.headers.cookie; // parse the cookie to get user data... // second argument to the callback decides whether to authorize the client callback(null, true); }); }); 

如果会话数据在URL中传播,那么您可以从handshakeData.urlhandshakeData.query收集这些信息。 你可能不得不做自己的实验。