Socket.IO:推送到客户端组

我正在使用Express的Node.js服务器,并希望执行以下操作:

  • 客户端调用带有ID的URL(例如localhost/show/:projectID
  • 每个客户端调用相同的ID应该进入相同的“组”
  • 新的消息只应该推送到同一个“组”中的客户端,而不是使用另一个ID调用一个URL的客户端

这怎么可以在Socket.IO中完成? (我已经阅读了“房间”,但我不知道如何与URL一起使用它们)

在用.handshake了一点点试验之后,我find了和.handshake类似的解决scheme。
我不知道我的解决scheme有多好,但它的工作原理。 代码如下:

 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"}); }); 

一旦客户端连接了他所使用的URL,它就会被保存到ref然后他join一个以该URL命名的房间(当然URL可以被进一步处理以获得更好的房间名称,但这对解决scheme来说不是必须的) 。