【发布时间】:2014-04-15 12:34:56
【问题描述】:
我正在开发一个基于 mongo 和sails 的应用程序,我正在测试sails 中的实时更新是如何工作的。
我现在使用sails 0.9.16,但我也对sails 0.10的答案感兴趣。
我希望在相应集合中创建新文档时更新列表。当我通过 Sails 套接字添加文档并发送帖子消息时,此方法有效。在这种情况下,我看到其他客户端收到一条消息,并且客户端的列表已更新。
有一个外部服务写在 mongo 数据库上,所以集合一直在增长。由数据库中的外部服务直接创建的新元素不会通知监听客户端,因此我必须刷新网页才能显示这些元素。
问题:
- 当这些创建不是来自sails 本身时,有关数据库创建的通知是否应该起作用?
- 如果是,是否需要一些特殊配置?
- 如果不是,当数据库发生变化时,什么是推荐的方法来保持有关集合的客户端列表更新?
干杯
【问题讨论】:
-
关于如何使用sails socket 提醒客户端每个新创建的示例?当在 db 中创建新记录时,您会使用 mongo-watcher 获取事件,但是如何将此事件发送到打开的套接字?
-
示例在下面答案的评论中,我将它复制到这里github.com/sourcefabric-innovation/citizendesk-interface/commit/…
-
我得到了这个。我试过 mongo-watch ,这工作正常。我更关心的是 publishCreate 部分。什么是能够通过 publishCreate 通知的传入套接字以及如何在浏览器端处理服务器发送的异步事件?
-
在收到我的请求的控制器中,我做了一个 MYMODEL.subscribe(req.socket),但是当我在做 MYMODEL.publishCreate(event.data);客户端的套接字似乎没有收到事件。有什么想法吗?
-
您不需要在控制器中使用
subscribe,蓝图API 可以,但是您必须在客户端上订阅,在集合上使用get,然后监听消息。无论如何,我只能建议为此提出一个新问题
标签: javascript mongodb sails.js