笔记内容:
express 服务器,搭载websocket服务器(用ws作为框架)并和 express 共享session。
session 用redis 进行管理。
#Part 1 配置 redis
1. 安装库:
"express-session":"1.13.0",
"cookie-parser":"1.4.3",
"connect-redis-sessions":"1.2.0"
2. 撸码:
app.js 中 代码:
备注:
1.很多网上资料,db 为一个字符串,应该是错的(或者我太弱,不懂能弄成字符串)。
redis 分库,是数字,默认是16个(0-15),我被这个坑了一下午😢
2. session 的 cookie 的配置, secure 如果弄成 true, 会导致 redisStrore 和 express cookie 不一致. 至于为什么,怎么处理,就不懂了
#part 2 http 请求中在cookie 写入 session ID
将sessionID 写入 cookie 让part3中的 ws服务器使用#part 3 WebSocket 服务器
1. 安装库:
"ws":"^1.1.0",
2.撸码(自己写的WSServer.js 文件):
WSServer.js简单说明:获取 cookie中的sessionID( 由part 2 写入的) 然后从 sessionStore 中获取对应的session.
备注:网上的很多例子,都是用express3.x 写的,所以,他们的cookieParser不一样。
注意,cookieParser = require('cookie-parser')();
后面还有个 括号。
3. 启动WSServer
在 bin/www 中 加入
启动WSServer最后注意下,web 浏览器的地址,都要写成127.0.0.1:3000 ,如果 有的写127.0.0.1:300 ,有的写 localhost:3000 , cookie 就会取不到了。(这个是我这种新手才会犯的错误)
网友评论