描述
- 我做了一个专门提供给前端用的socket服务器(没有关于http请求的路由和方法只有socket)。现在用‘express-socket.io-session’在socket中加入了中间件
- 前端页面链接有一个
http://localhost/?code=123
这样子的code参数,这个参数是用户用来连接到socket服务器后生产出session的 - 如图,我用的是
socket.use(fn)
这个作为socket的中间件,希望在方法里判断session是否存在,不存在就拿到code然后生成session
问题
-
socket.use(fn)
只是对于每个socket.emit()
,所以我不能在socket连接后emit一个登陆的事件(因为我试过只要是emit的都会被use在前面阻止了) - fn只是纯函数不能是callback(因为我需要在这个方法里面写async/await,request,mysql,redis等异步操作)
- 所以我要怎么获得前端的code参数?
- 除了
socket.use(fn)
有没有别的方法做中间件?因为我必须在里面写async/await。。