在Socket.IO中的路由

时间:2014-01-07 19:43:31

标签: node.js express socket.io

有没有办法告诉用户从哪个路由连接到socket.io?

例如,我有一个/ user /:id的路由。页面呈现和socket.io连接。 Socket.io需要知道客户端连接的路由以及:id,以便它可以发送相关数据。

如何做到这一点?

我尝试过的事情: 我试过会话套接字,但那是一团糟。我得到了它的工作,但这样使用会话套接字有很多问题。统治那个。目前,我将:id从路由传递给jade,然后将id保存为变量,然后当我从socket.io连接时,我发送user_init和id。 MESSY,但工作得很好。

1 个答案:

答案 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而且效果很好。如果有人知道我在哪里可以找到快递路由器上的文档,请发表评论!