HTTP data streaming

HTTP data streaming

本文关键字:streaming data HTTP      更新时间:2023-09-26

我有一个要在Python中实现的后端,它应该将数据流式传输到JavaScript创建表示的Web浏览器(例如,不断更新变量或绘制到<canvas>)。

该数据将以高达 100 Hz 的速率更新(在最坏的情况下,甚至可能是 1000 Hz ...),每个数据可能为 10 - 20 字节。

因此,我想我使用COMET模式的第一个想法会产生太多的开销。

我的下一个猜测是WebSockets。它们将是一个完美的选择 - 但在 Firefox 中被禁用使它们对我来说无法使用。

那么在这种情况下,您的建议是什么?

(要求:在纯JavaScript上运行一些现代浏览器,不允许使用Flash或Java。Python 中的后端。已经使用的lib是jQuery。实现应该很容易,最好使用轻量级库)

我现在采取的解决方案是使用 COMET 模式并传输自上次请求以来在后端排队的所有数据。所以我不会在数据生成缓慢(-> COMET)期间轮询,我只会拥有前端(即浏览器)在创建它们时可以处理的连接数量。

并且由于每个请求都包含几个数据点,因此开销会减少。(您甚至可以说开销是根据数据速率动态扩展的。随着数据速率的提高,开销会下沉...

作为这个问题的更新,如今,您应该能够使用服务器发送的事件。我没有使用XHR,因为它将整个响应保存在内存中,也没有使用websockets,因为我不需要双工通信。我有几乎相同的问题,在这里回答:

如何处理流式 HTTP GET 数据?