【发布时间】:2014-01-03 05:48:25
【问题描述】:
我是 node.js/socket.io 的新手,可能没有以正确的方式提出这个问题,甚至没有提出正确的问题。
我的应用程序的目标是从 API 获取数据并将其转换为 JSON 对象并将其存储在 mongodb 中。然后在需要时为客户端提供数据。我考虑了两种可能性,并想知道最佳做法是什么。我的第一个想法是每隔一段时间向所有连接广播数据库中的所有条目。另一个想法是让客户端请求服务器它需要什么数据,然后将请求的数据发送给客户端。
存储在数据库中的数据大约有 100 个条目。数据将大约每 30 秒从 API 更新一次。如果选择方法 1,数据将每 5-10 秒广播一次。如果选择方法 2,则数据将在请求时发送。客户端将有不同的情况,其中并非始终需要所有数据。客户端必须经常请求数据以确保数据是“新鲜的”。
所以我的问题是最好的做法是每 x 秒广播一个大块或在请求时广播较小的块。
对不起,如果这没有意义。 感谢您的宝贵时间。
【问题讨论】:
-
我建议查看Meteor 的发布/订阅系统及其DDP protocol。这个想法是服务器发布某些数据,然后客户端订阅一些数据。服务器向客户端发送它需要的数据,只有在实际发生更改时才会发送更新。
-
感谢您的建议,我会检查一下。整个系统看起来有点重,但是实现 DDP 协议很有趣。