如何在 sails.js 中省略 sails.sockets.broadcast 中的两个或多个套接字?

how to omit in sails.js two or more sockets in sails.sockets.broadcast?

我需要知道如何在 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 :/
 }

但是没用。

我需要知道这一点,因为我需要省略属于同一会话的套接字。 (示例:用户在计算机浏览器和 android 浏览器中的会话)

有人帮忙吗?

没有内置的东西可以为你做这件事,但 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);