geo*_*per 7 javascript node.js express socket.io
有没有一种在Express 3.0中使用Socket.io会话的好方法?一种以安全的方式获取客户会话ID的方法?这样我就可以向会员特定的会员发送通知,并从会员到会员进行私聊?
我在Express 3.0中使用MySQL商店
我写了一个小模块来抽象它,这是它的用法看起来如何.它是使用express 3,socket.io 0.9.10和来自connect 2.4.5的(默认)MemoryStore编写和测试的.它应该与其他兼容商店一起使用.
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
});
Run Code Online (Sandbox Code Playgroud)
有关其工作原理的更多详细信息,请参阅https://github.com/wcamarao/session.socket.io
您可能需要注意README的部分,它说明如何将它与您自己的会话存储密钥一起使用(我假设您的mysql存储使用的名称不是默认的'connect.sid').
我做了一些稍微不同的事情来让它工作。我阅读了nodester github上的很多帖子并提出了以下解决方案......
代替:
http.createServer(app).listen(app.get('port'), function(){
console.log("Express server listening on port " + app.get('port'));
});
Run Code Online (Sandbox Code Playgroud)
和:
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);
Run Code Online (Sandbox Code Playgroud)
我的计划是继续使用此解决方法,直到有关express3和socket.io的问题得到解决。