[英]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.