我的目标:
使用 Sails.js 创建一个私有(private)消息平台使用最简单的代码
最佳实践假设:
- 使用 Sails.js Webockets实时通知
- 使用 Sails.js PubSub用于 websockets 的数据库
- 使用 Sails.js .watch()获取消息
我的问题:
- 我可以只使用某些新型号的 socket (例如,查找用户 ID 与发件人或收件人 ID 匹配的位置)还是需要设置房间?选择性观看似乎要容易得多,但文档似乎不支持它。
- 如果我的上述任何假设或问题都不是实现目标的最佳方式,那么使用 Sails 实现私有(private)消息传递的最简单方法是什么?
我的尝试:
- 订阅和观看套接字
- 阅读Sails.js documentation
- 看sailsChat示例(使用房间)
- 在 StackOverflow 和 Google 中搜索 Sails 聊天示例
最佳答案
我猜最简单的方法是使用在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/