我需要知道如何在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浏览器中的会话)
有人帮忙吗?答案 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);