2
我使用的是快車的Node.js服務器和希望的組做到以下幾點:Socket.IO:推給客戶
- 客戶它(如
localhost/show/:projectID
) 調用的URL與ID
- 每個客戶端調用同一個ID應該進入
- 新的消息應只推到在同一個「組」的客戶,但沒有客戶端調用的URL與另一個ID
這怎麼可能在Socket.IO中完成? (我已經閱讀了關於「房間」的內容,但我不知道如何將它們與URL一起使用)
我使用的是快車的Node.js服務器和希望的組做到以下幾點:Socket.IO:推給客戶
localhost/show/:projectID
)這怎麼可能在Socket.IO中完成? (我已經閱讀了關於「房間」的內容,但我不知道如何將它們與URL一起使用)
經過與.handshake
的實驗,我找到了與GeoPhoenix提供的解決方案類似的解決方案。
我不知道我的解決方案有多好,但它的工作原理。下面的代碼:
io.sockets.on('connection', function (socket) {
var ref = JSON.stringify(socket.handshake.headers.referer);
socket.join(ref);
io.sockets.in(ref).emit('news', {hello: "world"});
});
只要一個客戶端連接,他所使用的網址將被保存到ref
,他加入了一個名爲URL(當然URL可以進一步加工後能有更好的房間名稱房間,但這不是解決方案的必要條件)。
您可以嘗試使用HTTP Referrer和命名空間,但您真正需要的是使用'.handshake'來授權訪問該項目的唯一ID,使用框架和socket.io之間的會話,通常訪問如果項目ID在會話變量中作爲'isMemberIn'被授予,當然這可能會改變。 – Gntem 2013-04-27 21:33:23