我是node.js / socket.io的新手,可能不会以正确的方式询问这个问题,甚至不会问正确的问题。
我的应用程序的目标是从API获取数据将其转换为JSON对象并将其存储在mongodb中。然后在需要时为客户端提供数据。我考虑过两种可能性,并想知道最佳做法是什么。我的第一个想法是经常向所有连接广播数据库中的所有条目。另一个想法是让客户端请求服务器所需的数据,然后将请求的数据发送到客户端。
存储在数据库中的数据大约有100个条目。数据大约每30秒从API更新一次。如果选择方法1,则数据将每5-10秒广播一次。如果选择方法2,则在请求时将发送数据。客户端将有不同的情况,并不是所有数据都会一直需要。客户端必须经常请求数据以确保数据“新鲜”。
所以我的问题是,每隔x秒播放一个大块的最佳做法是什么,或者在请求时播放较小的块。
很抱歉,如果这没有意义。 谢谢你的时间。
答案 0 :(得分:0)
DDP协议绝对是一种有趣的方式,但它可能有点过分。更简单的解决方案是从方法1和方法2中获得最佳效果。如果延迟不是那么重要并且您有备用带宽,则可以在新数据到达时向所有客户端广播“更新”消息。客户端会考虑更新是否会影响它并下载所需的数据。
稍微复杂且更有效的方法是订阅程序与DDP非常相似。对于较小的项目,您可以在一段时间内自己实现它。这就是它的工作方式:
通过chunk我的意思是如何识别一些数据。它可以是记录ID,过滤器的时间范围或项目中有意义的任何内容。