http - source - push technology中文




有一個真正的服務器通過HTTP? (5)

不。

您的瀏覽器不會偵聽傳入的連接。

你也不希望它能夠。 我們有足夠的利用率。

我知道有辦法偽造它,輪詢(或長時間輪詢),但有沒有辦法讓服務器聯繫瀏覽器推出信息?

無論是輪詢選項浪費資源在服務器上,並取決於服務器可以鎖定它(例如apache和iis)。

看起來像很多網站正在使用長輪詢在http上偽造服務器端推送機制。 在瀏覽器中建立真正的推送協議不是更好嗎?

有哪些服務器友好的推送(假的或其他)的信息到Web瀏覽器?


你不需要“偽造”任何東西。 Flash有一個非常漂亮,充實的Socket對象,可以很好地工作,你可以寫一個小的Flash應用程序向網頁發表意見,所以除了與服務器的通信外,你不需要做任何事情(如果您希望在HTML中構建頁面)。 當然,你需要一個服務器端的套接字監聽器,但是這些都很容易扔到一起。 很多關於如何實現整個事情的在線文檔....這是我發現的第一個例子(沒有看得太緊密,但看起來會很好)。 http://www.giantflyingsaucer.com/blog/?p=205


我認為WebSocket(請參閱http://en.m.wikipedia.org/wiki/WebSocket )是真正的推動,所以答案是:它取決於瀏覽器。 如果您需要廣泛的兼容性,那麼您今天可以做的最好的就是JavaScript庫,它將為運行的瀏覽器選擇最好的協議(例如https://github.com/ffdead/jquery-graceful-websocket )。 但是,你想要服務器友好,並支持多種協議是不是服務器友好。 目前的最新技術是,在瀏覽器上運行的很酷的東西是工程密集型的。


正如其他人所說,沒有客戶端請求(常規的HTTP),服務器不可能聯繫客戶端。

但是,如果您正在尋找乾淨的解決方案推送notificatinons ,然後看服務器發送的事件 。 這是常規的HTTP,並與大多數支持HTTP 1.1的瀏覽器無縫協作。

SSE只能在一個方向上工作(服務器 - >客戶端),這是推送通知的主要機制。 對於客戶端 - >服務器通信,您始終可以使用Ajax。 我總結了這個在哪個技術實時通信的Web應用程序?


可能是從提問的時候開始技術已經進步了......我遇到了這個尋找別的東西的人。

WebPush在大多數瀏覽器中都可用,並且有幾個推送通知提供程序將信息從服務器發送到瀏覽器。 除Safari之類的少數瀏覽器之外,可以開發處理程序,在通知到達時可以調用該處理程序,並在客戶端瀏覽器上執行某些操作。







long-polling