2013-02-20 65 views
2

我正在建造一個網站使用燒瓶,我希望做一個推客戶端。我遵循real-time-events-python,我能夠創建該網站。服務器發送的事件是「忙等待」嗎?

我注意到的一件事是,當訪問Javascript控制檯時,每500ms有一個GET,所以我想知道JavaScript的EventSource實際上是否會定期向服務器發送GET以查看是否有任何更新,導致它成爲忙碌的等待。

有關信息,我使用Flask(python框架)開發網站和chrome來訪問它。

Server Sent Events specification

+0

不,事件是異步的 - 沒有繁忙的等待。輪詢可能是不同的事情。 – Bergi 2013-02-20 19:40:39

+0

謝謝,我在代碼中導致這個GET請求的錯誤。 – barroca 2013-02-20 20:11:51

回答

3

the link you provided,是的,瀏覽器發送的GET爲服務器發送的事件的實現:

的服務器發送的事件的實際協議是很簡單的。客戶端 將打開到服務器的標準連接併發出GET請求。 它期望服務器保持打開套接字並通過 發送新事件以數據爲前綴:並以兩個換行符結尾。

因此,在服務器端,連接應該保持打開狀態,而數據仍然通過它進行流式傳輸。請記住,服務器發送的事件允許自動重新連接,所以如果您遇到很多重新連接(我想這些都是,除非您的客戶端代碼編寫不正確),您應該檢查確定你的服務器端沒有關閉連接,這會導致瀏覽器重新打開連接。

至於「忙等待」,如果我正確理解你,你不需要擔心這個。這是由瀏覽器處理的,所以你的代碼在等待時不會阻塞。

+0

只有客戶端第一次將GET發送到服務器。問題出在導致GET流的代碼上。感謝你的回答。 – barroca 2013-02-20 20:13:06