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

时间:2015-03-30 14:07:21

标签: node.js sails.js sails.io.js

我需要知道如何在sails.sockets.broadcast中的sails.js中省略两个或多个套接字?我试过这个:

 function sendMessage(data){
   var socketIds = ['socketId1','socketId2'];
   sails.sockets.broadcast("room","event",data,socketIds);
   //sending data to ALL sockets in the room :/
 }

但它没有用。

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

有人帮忙吗?

1 个答案:

答案 0 :(得分:0)

没有任何内置功能可以为你做到这一点,但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);