nau*_*boy 6 node.js express socket.io express-session
我目前正在尝试使用express 4.x和socket io 1.4实现会话管理,引用此答案.问题是快速会话函数的第二个参数是res(响应)对象,它在我的路由中返回'undefined'.这个问题已经过时了还是我做错了什么?
var http = require('http');
var session = require('express-session')(
{
saveUninitialized : false,
resave:false,
secret:'secretstuff',
cookie : {
path : '/'
}
}
);
var express = require('express');
var app = express();
app.use(session)
var http_server = http.createServer(app);
var io = require('./sockets')(http_server,session);
Run Code Online (Sandbox Code Playgroud)
这是我的sockets.js
var Server = require('socket.io');
module.exports = function(http_server, session)
{
var io = new Server(http_server);
io.use(function(socket,next){
//socket.request.res === undefined
session(socket.request, socket.request.res,next);
})
}
Run Code Online (Sandbox Code Playgroud)
这是我得到的地方
未捕获的TypeError:参数res是必需的
sessionMiddleware() 许多来源中提出的功能对我来说效果很好:
io.use(function(socket, next) {
sessionMiddleware(socket.request, socket.request.res, next);
});
Run Code Online (Sandbox Code Playgroud)
使用 web socket.io-client<=> socket.ionode.js 服务器,直到我将socket.io-client-cpp应用程序添加到链中 - 服务器socket.io-client-cpp因上述错误而崩溃:
Run Code Online (Sandbox Code Playgroud)TypeError: argument res is required
在sessionMiddleware()功能上。人们建议socket.request.res完全从中间件中删除:
并替换为{}. 但是认为它可以更改为稍微更好的变体,以防有人仍然需要和使用socket.request.res:
io.use(function(socket, next) {
sessionMiddleware(socket.request, socket.request.res || {}, next);
});
Run Code Online (Sandbox Code Playgroud)
这对我来说很好用!
| 归档时间: |
|
| 查看次数: |
730 次 |
| 最近记录: |