有没有办法告诉用户从哪个路由连接到socket.io?
例如,我有一个/ user /:id的路由。页面呈现和socket.io连接。 Socket.io需要知道客户端连接的路由以及:id,以便它可以发送相关数据。
如何做到这一点?
我尝试过的事情: 我试过会话套接字,但那是一团糟。我得到了它的工作,但这样使用会话套接字有很多问题。统治那个。目前,我将:id从路由传递给jade,然后将id保存为变量,然后当我从socket.io连接时,我发送user_init和id。 MESSY,但工作得很好。
答案 0 :(得分:0)
我刚为socket.io
写了一个小路径解析器var express = require('express')
, sioRouter = new express.Router();
sio.on('connection', function(socket){
var route = sioRouter.match('GET', socket.handshake.headers.referer);
if (route && route.callbacks.length) {
route.callbacks[0](socket, route.params);
}
sioRouter.get('/users/:id', function(socket, params){}
}
繁荣 - express.Router()的文档不存在。我发现其他人正在做router.match而且效果很好。如果有人知道我在哪里可以找到快递路由器上的文档,请发表评论!