我正在尝试使用sails.js 建立一个系统,让服务器将消息广播到一组客户端。基本上:
- A 组中的客户端向服务器发送 AJAX 请求。
- 服务器处理请求并通过套接字向 B 组的所有客户端发送消息。
- B组的客户端通过套接字接收消息并显示一些东西。
根据socket.io文档,我应该能够让B组中的客户端加入一个“房间”,然后让服务器广播到那个特定的房间,但是在客户端,预先存在的“套接字”没有有方法“socket.join('room')”。所以,我尝试向所有客户发送一个独特的事件:
socket.on("connect", function(){
console.log("Client Connected");
});
socket.on("my_event", function(data){
console.log("my_event received");
});
通过在服务器端执行“sails.io.sockets.emit("my_event", {...})" 可以正常工作,但这不是将事件发送到每个客户端吗?我可以使事件名称唯一,例如“my_event_000”,带有一个 ID 来指定组,但这仍然会不必要地向每个客户端发送事件。
我应该使用“房间”吗?如果是这样,怎么办?