正如标题所说,我使用express-session和redis处理会话。像这样的代码:
app.use(session({
store: new RedisStore({
"host": "115.28.87.181",
"port": "6379",
"ttl": 60 * 60 * 20,
"pass": "",
"db": 0,
"prefix": "session"
}),
name: "sessionid",
secret: '8541539655',
resave: true,
saveUninitialized: true,
cookie: {
path: '/',
httpOnly: false,
secure: false,
maxAge: 60 * 60 * 20
},
rolling: true,
unset: "destroy"
}));
它可以存储会话并且运行良好。
当我请求类似" http://127.0.0.1/sign/availd_id?id=tosone"的链接时确保哪个ID可用。除了firefox和safari之外,Chrome中出现了问题。
我的NodeJs服务器将响应chrome {code: 200
,并等待很长时间,浏览器状态为“请求尚未完成”,并且JS未运行。
经过很长时间约2分钟后,Chrome会获得完整信息{code:200}
。看起来浏览器等待}
。
但是服务器日志表示它很久以前就已经将所有信息都反馈给了浏览器。日志是这样的:GET /sign/availd_id?id=tosone 200 73.555 ms
,它在刷新浏览器时出现。
我的代码中没有http keep-alive。
删除上面的代码或使用firefox,问题永远不会像那样。