我在NodeJS上运行SocketIO,我不太关心广泛的浏览器支持,因为它是我的宠物项目,我想使用新技术的所有功能来简化开发。我关心的是如何将大量JSON数据从服务器发送到客户端并返回。嗯,这些量并不像视频或图像二进制数据那么大,我想每个请求不会超过数百千字节。
我看到的两种情况是:
- 通过WebSockets从服务器向客户端发送一个应该获取某些数据的通知。然后客户端代码向服务器运行一个常规的XHR请求,并通过XHR获取一些数据。
- 将整个数据集通过WebSockets从服务器发送到客户端。在这种情况下,我不需要运行任何额外的请求-我只是通过WebSockets获得所有数据。
我在Meteor.js中看到了第一个case,所以我想知道它的原因。请分享你的看法。
Websockets应该支持大型数据集(在理论中高达16艾字节),所以从这个角度来看它应该工作得很好。XHR的优点是,您将能够随着时间的推移观察进度,并且通常可以更好地对大型数据块进行测试。例如,我看到websocket服务器实现(回想起来)不能很好地处理大数据,因为它们会将整个数据加载到内存中(而不是流式数据),但这当然不一定是socket的情况。io(不知道)。注意:用socket试试。IO同时观察内存使用和稳定性。如果可以的话,肯定会选择websockets,因为从长远来看,对大数据包的支持只会越来越好,而不会越来越差。如果它是不稳定的或如果插座。io不能传输更大的数据文件,然后使用XHR结构。
顺便说一句,只是在谷歌上搜索了一下文件,还没有研究那么多,但它可能正是你需要的。