Socket.io Express 3会话

Express 3.0中使用Socket.io的会话有一个好方法吗? 一种以安全的方式获得客户会话ID的方法? 这样我可以发送通知给会员专用的会员,并从会员到会员进行私人聊天?

我在Express 3.0中使用MySQL存储

我写了一个小模块来抽象它,它的用法如下。 它是使用express 3,socket.io 0.9.10和来自connect 2.4.5的(默认)MemoryStore编写和testing的。 它应该适用于其他兼容的商店。

var SessionSockets = require('session.socket.io') , sessionSockets = new SessionSockets(io, sessionStore, cookieParser); sessionSockets.on('connection', function (err, socket, session) { //your regular socket.io code goes here }); 

有关如何工作的更多细节,请参阅https://github.com/wcamarao/session.socket.io

您可能需要注意自述会话存储键(如果您的mysql存储使用默认的“connect.sid”以外的名称),如何使用它的README部分。

你应该看看express.io ,一个非常简单的express和socket.io集成的微观框架。 它自动处理express和socket.io会话。

 npm install express.io 

在此查看会话支持示例:

https://github.com/techpines/express.io/tree/master/examples#sessions

我做了一些稍微不同的工作。 我阅读了很多nodeter github上的post,并附带以下解决scheme….

更换:

 http.createServer(app).listen(app.get('port'), function(){ console.log("Express server listening on port " + app.get('port')); }); 

有:

 var server = http.createServer(app).listen(app.get('port'), function(){ console.log("Express server listening on port " + app.get('port')); }); var io = require('socket.io').listen(server); 

我的计划是继续解决这个问题,直到解决了express3和socket.io的问题。