我已经看到可以使用来自服务器的 multipart/x-mixed-replace MIME 类型响应和<img src=host/streamAddress />
客户端的简单流式传输 jpeg。我的理解是浏览器负责获取每一帧,显示它和更新。以这种方式流式传输 jpeg 实际上对我有用。
但现在我正在尝试使用这种方法流式传输一些文本数据(小型压缩点云)。我有点坚持如何在客户端处理它。我想将不同的片段(边界之间)用作某种“框架”,它们将按顺序呈现。
我使用three.js作为我的渲染引擎,我使用他们的加载器,它似乎使用标准的XMLHTTPRequest,并且有3个回调,加载内容时加载,加载内容时进行进度,以及错误回调。
当我发送 XMLHTTPRequest 时,永远不会调用onLoad回调,但会无限调用onProgress回调。登录到控制台时,我可以看到缓冲区(包含正确的数据),但它似乎在无限增长。请求永无止境。
这似乎是 multipart/x-mixed-replace 所期望的,但 XMLHTTPRequest 似乎没有考虑到它。我有点期望在每次更新时调用 onLoad 回调......
如果有人可以提供可以工作的客户端代码的最小工作示例,那就太好了。或者,我会对其他类似的简单解决方案感兴趣,因为我为我的应用程序使用“手写”(实际上是使用 boost)c++ 服务器。
谢谢您的帮助 !
编辑:我发现不再支持 multipart/x-mixed-replace... 我发现的一个建议是从 onProgress 事件中获取 responseText。
但是这样做会让浏览器相信页面一直在加载,似乎总是以错误告终。有没有办法让进度回调一直被调用并使浏览器相信一切正常?