我正在使用NodeJS,socket.io和express创建应用程序,我想知道如何确定哪个路由器(id /用户)在哪个路由器上?例如,我的网站上有10个用户,并且有3条路由:/ home,/ about,/ contact。我怎么知道哪个用户在哪个路由器上?
首先,要知道“哪个用户”本身,您将需要一个具有会话和cookie的系统,以在每次他们发出不同的请求时标识特定的用户。Passport.JS使这个过程变得非常简单。
其次,要在Express路由和Socket.io处理程序之间共享同一用户,将需要在两者之间共享会话信息。对于Passport.js,有执行此操作的socket.io-passport。
最后,当客户端Socket.io发起到服务器的连接请求时,io.connect()
它将请求的引荐来源标头设置为当前URL,可以在服务器端使用socket.request.headers.referer
完成所有这些操作之后,您最终将能够知道哪个用户在哪个路由上:
app.get('/about', function(req, res, next){
// req.user is on '/about' path
});
var URL = require('url');
io.on('connection', function(socket) {
var user = socket.request.user;
var path = URL.parse(socket.request.headers.referer).path;
// user is on -> path
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句