2014-01-07 64 views
1

有沒有辦法告訴用戶連接到socket.io的路由?Socket.IO中的路由

例如,我有一個具有/ user /:id的路由。頁面呈現和socket.io連接。 Socket.io需要知道客戶端連接的路由以及:id,因此它可以發送相關數據。

這怎麼辦?

我試過了: 我試過會話套接字,但那是一團糟。我得到它的工作,但有這樣的使用會話套接字有很多問題。裁定出來。目前,我將路由中的id傳遞給jade,然後將id保存爲一個變量,然後當我從socket.io連接時,我向user_init發送id。 MESSY,但工作得很好。

+0

你有沒有嘗試命名空間? – Gntem

回答

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,它工作的很好。如果有人知道我可以在快速路由器上找到文檔,請發表評論!