我對財務數據如何從服務器傳輸到客戶端非常感興趣。我經常在這裏使用「推拉」這個術語。我想知道是否有人可以給我一個例子(最好是在Java,C#或Javascript),這是如何實現的?每當我在家裏編寫愛好業餘愛好項目時,即使價格沒有變化,我通常最終還是會查詢一個URL(包含價格),並在一段時間(true)循環內連續調用此函數,並使用thread.sleep(x)。服務器 - 客戶端推/拉連接如何工作?
在此先感謝
我對財務數據如何從服務器傳輸到客戶端非常感興趣。我經常在這裏使用「推拉」這個術語。我想知道是否有人可以給我一個例子(最好是在Java,C#或Javascript),這是如何實現的?每當我在家裏編寫愛好業餘愛好項目時,即使價格沒有變化,我通常最終還是會查詢一個URL(包含價格),並在一段時間(true)循環內連續調用此函數,並使用thread.sleep(x)。服務器 - 客戶端推/拉連接如何工作?
在此先感謝
不知道你的意思與「流財務數據」是什麼,但推/拉的概念並不侷限於金融領域:)
一般來說,拉動戰略意味着客戶端主動獲取數據通過一個預定義的通信通道(在你的情況下是一個套接字到現有的和已知的URL)並輪詢這個通道以獲得新的信息。
與此相反,您有推送策略,您可以在其中通知您有任何更改,並提供通信通道並將其註冊到連接的夥伴。例如。您有一個web服務,並且您的連接夥伴將在他認爲合適的時候將信息發佈到該web服務。對於這個概念見http://en.wikipedia.org/wiki/Observer_pattern。
希望這會有所幫助。
如果客戶端通過HTTP工作,推送始終由客戶端發起,即客戶端請求新的更新並且服務器發送它們。如果客戶端是瘦客戶端(即應用程序在瀏覽器中運行),現代的方法是使用AJAX檢索數據而不刷新頁面。但是,這一舉措又是在客戶端,但用戶卻沒有看到它。它使用javascript在計劃的基礎上完成。
最「實時」的方法是使用HTTP隧道技術:客戶端執行HTTP GET到特殊的URL映射到servlet不關閉連接。它只是把它打開。當它有東西發送到客戶端時,它會寫入流中。因此,您可以獲得服務器到客戶端的推送,但仍然由客戶端執行初始連接。
這是兩個基於Web的PUSH技術。
至於瀏覽器支持:
有許多拉技術,包括HTTP和Ajax。
[財務頁面如何更新自己](http://stackoverflow.com/questions/6759192/how-do-pages-like-yahoo-finance-update-page-without-plugins-etc-http-push/ 6759218#6759218) – Raynos