关于websocket和HTTP有很多博客和讨论,许多开发人员和网站都强烈支持websockets,但我仍然无法理解为什么.
例如(websocket爱好者的参数):
HTML5 Web套接字代表了Web通信的下一个发展 - 一种全双工双向通信通道,通过Web上的单个插槽运行.(http://www.websocket.org/quantum.html)
HTTP支持流媒体:请求正文流(您在上传大文件时使用它)和响应正文流.
在与WebSocket连接期间,客户端和服务器每帧交换2个字节的数据,而连续轮询时则为8千字节的http头.
为什么这2个字节不包括tcp和tcp协议开销?
GET /about.html HTTP/1.1
Host: example.org
Run Code Online (Sandbox Code Playgroud)
这是~48字节的http标头.
http chunked编码 - http://ru.wikipedia.org/wiki/Chunked_transfer_encoding:
23
This is the data in the first chunk
1A
and this is the second one
3
con
8
sequence
0
Run Code Online (Sandbox Code Playgroud)
这两个协议都可以在TCP上运行,因此所有与长期连接的TCP问题仍然存在.
题:
我已经阅读了这个问题,但它并没有完全回答我的问题.不幸的是,自从我上次查看AJAX以来,看起来XHR对象中的内容发生了变化,因此responseText在完成填充之前不再可以直接访问.
我必须编写一个使用AJAX(最好是jQuery,但我愿意接受建议)的页面来从我无法控制的服务器通过HTTP检索CSV数据.响应数据可能非常大; 一兆字节的文本并不少见.
服务器是流友好的.是否有任何方法可以直接从JavaScript返回数据流?
我可以选择编写一些生活在中间的PHP代码并使用某种"Comet"技术(长轮询,EventSource等),但我希望尽可能避免这种情况.
如果它是相关的,假设这个问题用户有最新版本的Firefox/Chrome/Opera和旧的浏览器兼容性不是问题.