簡體   English   中英

HTTP數據流

[英]HTTP data streaming

我有一個要在Python中實現的后端,該后端應該將數據流傳輸到Web瀏覽器,在該Web瀏覽器中JavaScript正在創建表示形式(例如,不斷更新變量或將圖形繪制為<canvas> )。

該數據將以高達100 Hz的速率更新(在最壞的情況下甚至可能以1000 Hz ...)更新,每個更新頻率可能為10-20字節。

因此,我想我首先想到的是使用COMET模式會產生過多的開銷。

我的下一個猜測是WebSockets。 它們非常適合-但是在Firefox中被禁用使它們對我不可用。

那么在這種情況下您有什么建議使用?

(要求:在純JavaScript上在一些現代瀏覽器中運行,不允許Flash或Java。后端在Python中。已經使用的lib是jQuery。實現應該很容易,最好使用輕量級的lib)

我現在采取的解決方案是使用COMET模式並傳輸自上次請求以來在后端排隊的所有數據。 因此,在數據生成速度較慢時(-> COMET),我不會進行輪詢,並且只有前端(即瀏覽器)在創建它們時可以處理的連接數量。

由於每個請求都包含幾個數據點,因此減少了開銷。 (您甚至可以說,開銷是根據數據速率動態縮放的。隨着數據速率的提高,開銷逐漸減少……)

如今,作為對此問題的更新,您應該可以使用服務器發送的事件。 我之所以沒有使用XHR,是因為它會將整個響應都保存在內存中,也沒有使用websocket,因為我不需要雙工通信。 我有幾乎相同的問題,在這里回答了:

如何處理流HTTP GET數據?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM