簡體   English   中英

可以進行客戶端HTTP推送嗎?

[英]Possible to do client-side HTTP push?

幾乎與服務器端推送相反,也稱為Comet 我想知道是否可以使用長期的HTTP連接將信息推送到服務器。

與簡單的XHR不同,連接將保持活動狀態,並且數據將按時間間隔流式傳輸到服務器,因為用戶完成了操作等。

使用標准技術我不相​​信這是可能的,但我願意接受有關可能的開發或巧妙實現這一目標的建議。 目的是完成向服務器的低延遲數據推送,以實現快速有效的單向流。

我對使用flash / java橋接器的套接字實現不感興趣,因為服務跨域策略或獲得java簽名的麻煩。 歡迎使用無需額外依賴性的原始黑客。 優選地,解決方案將使用javascript完成。

這可以通過以下幾種方式之一完成......

您可以保持連接打開並執行POST,或者我確信可以執行多部分POST。

我曾經看過http://orbited.org/背后的人的演講

這是一個js庫,它使用標准技術在服務器和客戶端之間保持連接打開,你可以推送它。

這樣做: http//www.speich.net/projects/programming/firebug-testing.php

看看這個: http//en.wikipedia.org/wiki/Comet_(programming ))和google周圍的'x-mixed-replace'

在Firefox上做你的XHR。 必須直接使用它或抓住XHR對象來設置有趣的字段。 xhr.multipart = true並使用onload處理程序,而不是onreadystatechange。

服務器應返回mime類型為“multipart / x-mixed-replace”的數據。 加上一個多部分分隔符。 flush以獲取每個齊射的最后一個字節。 我還在努力讓它變得順暢。

Safari(〜= chrome)可以做到,但細節不同。 在readyState = 3時調用你的處理程序,而不是4。每次新文本都附加到resultText時,並不是全部。 無法在IE上獲得任何工作。

如果您正在尋找雙向瀏覽器 - 服務器通信,那么您可能正在尋找WebSockets 有關可用的實現,請參閱Wikipedia文章的底部。

暫無
暫無

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

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