“无法通过键查找会话:connect.sid” – session.socket.io

我对NodeJS的开发很新颖。 我在我的快车应用程序中使用了session.socket.io插件,但是当我在sessionSockets.on('connection' ,。内部debugging应用程序“无法通过键查找会话:connect.sid”时出现此错误。 ..

这里是整个app.js

 var http = require('http'), connect = require('express/node_modules/connect'), express = require('express'), app = express(); var cookieParser = express.cookieParser('Your secret key here'), sessionStore = new connect.middleware.session.MemoryStore(); app.configure(function() { app.set('port', process.env.PORT || 3000); app.use(express.logger('dev')); app.use(express.bodyParser()); app.use(express.methodOverride()); app.use(cookieParser); app.use(express.session({ store: sessionStore })); app.use(app.router); }); var server = http.createServer(app), io = require('socket.io').listen(server); var SessionSockets = require('session.socket.io'), sessionSockets = new SessionSockets(io, sessionStore, cookieParser); app.configure('development', function() { app.use(express.errorHandler()); }); app.get('/', function(req, res) { res.end("Welcome to the API server"); }); sessionSockets.on('connection', function(err, socket, session) { console.log('-----------------------'); console.log(err.error); console.log('-----------------------'); socket.emit('welcome', { msg: 'You\'re now listening to the api.' }); }); server.listen(app.get('port'), function() { console.log("Express server listening on port " + app.get('port')); }); 

客户端:

 <!DOCTYPE html> <head> <meta charset="utf-8"> <title>Express+SocketIO testing</title> </head> <body> <div id="responses"> <h2>API responses:</h2> <ul></ul> </div> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> <script src="http://localhost:3000/socket.io/socket.io.js"></script> <script> $(document).ready(function() { var socket = io.connect('//localhost:3000'); // Welcome message socket.on('welcome', function(data) { var li = '<li>Server said: ' + data.msg + '</li>'; $('#responses ul').append(li); }); }); </script> </body> </html> 

的package.json

 { "name": "application-name", "version": "0.0.1", "private": true, "scripts": { "start": "node app" }, "dependencies": { "express": "3.0.3", "socket.io":"*", "session.socket.io":"*" } } 

任何帮助或暗示是值得欢迎的。 谢谢。

当我使用Java socket.io客户端时,发生了这种情况,因为Java无法访问node.js会话。

所以,我决定最好不要使用session.socket.io插件。 可以与各种客户端协同工作的更一般的解决scheme是:将会话数据(或会话ID)发送到客户端,可能通过将JavaScript片段插入客户端代码; 然后让客户端将会话ID发送回服务器。

很多人都有同样的错误,根据对Github的评论 ,有一个非常简单的解决scheme。 这只是一个浏览到127.0.0.1与本地主机的问题。

我希望这也能解决你的问题。

这帮助我解决了这个问题: https : //github.com/wcamarao/session.socket.io/issues/35