Tôi đang sử dụng các mô-đun connect
, passport
và session.socket.io
trong ứng dụng của mình. Trên sự kiện connection
của session.socket.io tôi nhận được một lỗi: could not look up session by key: connect.sid
Kết nối + SessionSocket.io + Hộ chiếu: Không thể tra cứu phiên bằng khóa
Tình hình là như this one
My mã phía máy chủ là: Mã
var mod_http = require('http');
var mod_connect = require('../../lib/node_modules/connect');
var mod_connectRoute = require('../../lib/node_modules/connect-route');
var mod_ejs = require('../../lib/node_modules/ejs');
var mod_SessionSockets = require('../../lib/node_modules/session.socket.io');
var mod_passport = require('../../lib/node_modules/passport'), LocalStrategy = require('../../lib/node_modules/passport-local').Strategy;
var mod_fs = require('fs');
var app = mod_connect();
var cookieParser = mod_connect.cookieParser('your secret sauce'),
sessionStore = new mod_connect.middleware.session.MemoryStore();
app.use(mod_connect.static(folder));
// Configure the app connection
app.use(cookieParser);
app.use(mod_connect.bodyParser());
app.use(mod_connect.session({ secret: 'logged' }));
app.use(mod_passport.initialize());
app.use(mod_passport.session());
app.use(mod_connectRoute(function (router) {
router.get('/', function (req, res, next) {
...
}
}
var server = mod_http.createServer(app),
io = require('../../lib/node_modules/socket.io').listen(server);
// Limit the messages shown.
io.set('log level', 2);
// Create a session.
var sessionSockets = new mod_SessionSockets(io, sessionStore, cookieParser);
// Fire when a browser install a connection. A page refresh closes the connection and creates new one.
sessionSockets.on('connection', function (err, socket, session) {
console.log(err);
console.log(sessionStore);
console.log('Hello!');
});
server.listen(4000);
Chủ đầu tư:
<!DOCTYPE html> <!-- HTML 5 -->
<html>
<head>
<link rel="stylesheet" type="text/css" href="/style.css">
<script src="/jquery-1.9.1.js"></script>
<meta charset="utf-8">
<title> Test </title>
</head>
<body>
<script src="/socket.io/socket.io.js"></script>
<script type="text/javascript">
socket = io.connect('http://'+location.host);
</script>
<script src="/functions.js"></script>
...
</body>
</html>
Khi tôi mở trang localhost:4000
tôi có thể thấy như sau sản lượng trên Node.js console:
[Error: could not look up session by key: connect.sid]
{ sessions: {} }
Hello!
PS: do uy tín thấp của tôi, tôi không thể thêm một thẻ mới cho các cuộc thảo luận, nhưng tôi nghĩ rằng cuộc thảo luận này sẽ cần session.socket thẻ .io, sẽ được đánh giá cao nếu ai đó có thể thêm nó, nhờ
Tôi rất muốn biết câu trả lời – MrYoshiji
Tôi cũng rất thích! – Arthur
Tôi không thể giải quyết vấn đề này :( –