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

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

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

相关文章:

javascript - 发出警报时,Sweet alert 2 未显示为模态

node.js - Azure Node 托管文件/文件夹权限

mysql - 在不使用主键的情况下在 sails js 中填充一对多关系

node.js - socket.on 函数中未触发 Socket.get 回调

ios - 将 sails.io 与 iOS swift 应用程序连接

angularjs - 使用 sails.io.js 在 Ionic 应用程序和 sails API 之间建立 Web 套接字连接

javascript - 在单个文件中 bundle typescript 输出

Django Node.js 套接字.io

node.js - React.js 项目中缺少依赖项

javascript - Waterline Sails JS 不起作用