javascript - Sails.js 简单的私有(private)消息传递(发布/订阅和模型)

标签 javascript node.js sockets sails.js publish-subscribe

我的目标:

使用 Sails.js 创建一个私有(private)消息平台使用最简单的代码


最佳实践假设:


我的问题:

  • 我可以只使用某些新型号的 socket (例如,查找用户 ID 与发件人或收件人 ID 匹配的位置)还是需要设置房间?选择性观看似乎要容易得多,但文档似乎不支持它。
  • 如果我的上述任何假设或问题都不是实现目标的最佳方式,那么使用 Sails 实现私有(private)消息传递的最简单方法是什么?

我的尝试:

最佳答案

我猜最简单的方法是使用在sails中实现的socket.io,如果我没记错的话,它只是简单地称为socket。

所有 Controller 都可以通过 socket.io(客户端)IIRC 调用。 我采用的方法是创建一个名为消息的模型,然后简单地为消息创建几个端点。如果您想使用模型(发布/订阅),可以只订阅您想要的模型。即使您有很多用户,您也可以只为每个用户订阅一个模型。

我以前做的是手动操作,当我收到一条消息时,我会立即将其发送给正确的客户。但是,如果您想编写更少的代码,您可能只需让用户订阅您的模型 Model.subscribe()( http://sailsjs.org/documentation/reference/web-sockets/resourceful-pub-sub/subscribe ) 因此,当一条消息添加到数据库时,您可以将其发送给您需要的任何人。

下面是另一个建立在sails.js 之上的聊天示例:https://github.com/asm-products/boxychat-old

关于javascript - Sails.js 简单的私有(private)消息传递(发布/订阅和模型),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32414896/

相关文章:

javascript - nodejs循环async.parallel回调

php - 添加信息按钮的简单方法(?)

javascript - 使用本地存储

javascript - 如何防止用户重复询问同一问题?

javascript - 如何在 AngularJS 中使用 HTTPS?

node.js - 带有正则表达式和意图的triggerAction

node.js - 如何将 'import' 第三方 Javascript 文件写入 IntelliJ,以便我可以在 Typescript 文件中引用它

python-3.x - 如何重用套接字地址python?

java - 如何关闭2个线程使用的inputStream

javascript - 如何开始使用 Web Sockets?