WebSockets vs XHR的大量数据

我在NodeJS上运行SocketIO,我并不关心广泛的浏览器支持,因为它是我的宠物项目,我希望利用新技术的所有function来简化开发。 我关心的是如何从服务器向客户端发送大量的JSON数据。 那么,这些数量并不像video或图像二进制数据那么大,我认为每个请求不会超过几百KB。

我看到的两个场景是:

  1. 通过WebSockets从服务器发送一个通知给客户端,一些数据应该被获取。 然后客户端代码运行一个普通的XHR请求到服务器,并通过XHR获取一些数据。
  2. 通过WebSockets从服务器发送整个数据集到客户端。 在这种情况下,我不需要运行任何额外的请求 – 我只是通过WebSockets获取所有的数据。

我看到了Meteor.js的第一个例子,所以我想知道它的原因。 请分享您的意见。

Websockets应该支持大数据集( 理论上高达16 EB),所以从这个angular度来看,它应该可以正常工作。 XHR的优势在于,您将能够观察一段时间内的进展情况,并且通常能够更好地testing大型数据块。 例如,我已经看到websocket服务器实现(回顾思路)不能很好地处理大数据,因为它们会将整个数据加载到内存中(而不是stream式传输数据),但套接字当然不一定是这种情况。 io(dunno) 注意事项:在使用socket.io的同时观察内存的使用情况和稳定性。 如果可以的话,一定要使用websockets,因为长期以来对大数据包的支持只会越来越好,绝对不会变差。 如果结果不稳定或者socket.io无法传输更大的数据文件,则使用XHR结构。

顺便说一句,只是一个谷歌search变成了siofile ,并没有太多的研究,但它可能只是你需要的东西。