我需要知道如何在 sails.js 中省略 sails.sockets.broadcast 中的两个或多个套接字?我试过这个:
function sendMessage(data){
var socketIds = ['socketId1','socketId2'];
sails.sockets.broadcast("room","event",data,socketIds);
//sending data to ALL sockets in the room :/
}
但它不起作用。
我需要知道这一点,因为我需要省略属于同一 session 的套接字。 (示例:计算机浏览器和Android浏览器中的用户 session )
有人帮忙吗?
最佳答案
没有任何内置工具可以为您执行此操作,但 broadcast
无论如何都只是 emit
的包装器,因此您可以通过获取要广播到的房间中的所有套接字 ID 来自行实现,并忽略数组中的 ID。
// Get all the IDs of the sockets subscribed to "room"
var socketIds = sails.sockets.subscribers("room");
// Remove the IDs you want to omit
socketIds = _.difference(socketIds, ['socketId1','socketId2']);
// Emit your event to the rest!
sails.sockets.emit(socketIds, "event", data);
关于node.js - 如何在 sails.js 中省略 sails.sockets.broadcast 中的两个或多个套接字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29348360/