“无法通过键查找会话:connect.sid” - session.socket.io [英] "could not look up session by key: connect.sid" - session.socket.io
本文介绍了“无法通过键查找会话:connect.sid” - session.socket.io的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在使用我的快速应用程序中的 session.socket.io 插件,但是当我调试应用程序时,我收到此错误无法通过密钥查找会话:connect.sid,在
这是整个 app.js
:
var http = require('http'),
connect = require('express / node_modules / connect'),
express = 'express'),
app = express();
var cookieParser = express.cookieParser('你的秘密密钥在这里'),
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.sess ion({
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(欢迎使用API服务器);
});
sessionSockets.on('connection',function(err,socket,session){
console.log('------------ -----------');
console.log(err.error);
console.log('-------------- ---------');
socket.emit('welcome',{
msg:'你现在正在听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测试< / title>
< / head>
< body>
< div id =responses>
< h2> API响应:< / 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');
//欢迎消息
socket.on('welcome',function(data){
var li ='< li>服务器说:'+ data.msg +'< / li> ;
$('#responses ul')。append(li);
});
});
< / script>
< / body>
< / html>
package.json
{
/ pre>
name:application-name,
version:0.0.1,
private:true,
scripts:{
start:node app
},
dependencies:{
express:3.0.3,
socket.io:*,
session.socket.io:*
}
}
欢迎任何帮助或提示。谢谢。
解决方案这有助于我解决这个问题: https://github.com/wcamarao/session.socket.io/issues/35
I am pretty new to the NodeJS development. I am using the session.socket.io plugin in my express app, but I am getting this error when I debug the app "could not look up session by key: connect.sid", inside sessionSockets.on('connection', ...
Here is the entire
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')); });
Client side:
<!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":"*" } }
Any help or hints are welcome. Thank you.
解决方案This helped me solve this problem: https://github.com/wcamarao/session.socket.io/issues/35
这篇关于“无法通过键查找会话:connect.sid” - session.socket.io的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文