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