相當難以確定的問題,但基本上我想知道什麼是最好的方式(而不是「你的意見」,但「這將最充分地滿足我要提出的要求)是打開一個流連接從一個客戶端網頁到服務器,以便可以發送數據到另一個沒有輪詢?我想這個術語是HTTP綁定與HTTP輪詢。這裏的上下文是一個聊天應用程序 - 我想流式連接如此瀏覽器不會不斷推送請求,客戶端在這裏是KnockoutJS和jQuery,我希望能夠將數據來回推送爲JSON(或者至少可以通過jQuery和Knockout的toJSON
操縱)。服務器端 - 不太清楚它會是什麼,但我可能會在Linux服務器上運行,所以任何兼容的東西都可以正常工作。 如果有更多的細節我可以提供,請讓我知道 - 我確信我留下了一些明顯的細節。此外,我知道這可能是一個重複的問題,所以如果你的答案是一樣好,關閉一個愚蠢,並在一個鏈接,這很好。 謝謝!打開TCP流到服務器的最佳方式是什麼?
回答
我認爲你要找的就是彗星。基本思想是保持HTTP請求打開更長時間,以便服務器可以在客戶端發送數據時向客戶端發送數據,而不是客戶端必須不斷地輪詢服務器以獲取新數據。有多種方式來實現它。這個Wikipedia article是更多信息的好開始。
這個MIX 2011 video討論了長輪詢技術(儘管視頻中的建議是網絡套接字將成爲未來瀏覽器的更好解決方案)。
看起來像AJAX長輪詢是我想要的...我正確地說,它會像一個簡單的jQuery' $ .ajax'請求在服務器端保持打開狀態,並在客戶端恢復後立即重新打開? – 2011-04-29 21:39:04
Oooh,一個視頻!來自MIX,不能少!謝謝! – 2011-04-29 21:40:27
@Thomas:afaiu並不那麼簡單。長期投票/彗星本質上是一個http黑客攻擊。你需要一個服務器來處理連接,並且我確信你需要一些特殊的js客戶端。彗星非常繁瑣而且不容易設置。 99.9%你最好只是定期對新數據進行Ajax請求。幾乎所有基於Web的聊天客戶端都是這樣工作的。 – 2011-04-29 21:43:19
- 1. 上傳文件到服務器的最佳方式是什麼?
- 2. 保持與GO聽TCP服務器的最佳方式是什麼?
- 3. 在服務器中實現AutoComplete的最佳方式是什麼?
- 4. 跨服務器分發代碼的最佳方式是什麼?
- 5. 什麼是從服務器下載文件的最佳方式
- 6. 什麼是與MySQL服務器通信的最佳方式?
- 7. SQL服務器:什麼是數據遷移的最佳方式?
- 8. 測試Atom服務器的最佳方式是什麼?
- 9. 什麼是推出Jenkins服務器的最佳方式
- 10. 什麼是開源的最佳方式?
- 11. 將Gtk.Widget打印到打印機的最佳方式是什麼?
- 12. 實現OpenID服務器(最好是Ruby)的最佳方式是什麼?
- 13. 什麼是從JSP打開PDF的最佳方式?
- 14. 遷移到新的Perforce服務器的最佳方式是什麼?
- 15. 從Rails到EventMachine服務器安排工作的最佳方式是什麼?
- 16. 什麼是從SQL服務器將數據同步到Azure的最佳方式
- 17. 什麼是直播iPhone攝像頭到媒體服務器的最佳方式?
- 18. 將數據從設備發送到服務器的最佳方式是什麼?
- 19. 將更新從服務器發送到iphone的最佳方式是什麼?
- 20. 將名稱值對發送到服務器的最佳方式是什麼?
- 21. 將Android用戶唯一標識到服務器的最佳方式是什麼?
- 22. neo4j服務器插件開發的最佳實踐是什麼?
- 23. 服務器到服務器調用的最快方式是什麼?
- 24. 創建移動Web服務API的最佳方式是什麼?
- 25. 什麼是實現web服務登錄的最佳方式?
- 26. 在Grails中使用Web服務的最佳方式是什麼?
- 27. WebMatrix中查詢WCF服務的最佳方式是什麼?
- 28. 什麼是測試Web服務網關的最佳方式?
- 29. 在python中使用web服務的最佳方式是什麼?
谷歌和搜索SO「彗星」,「反向AJAX」,「長期投票」。並在這裏看到:http://en.wikipedia.org/wiki/Comet_%28programming%29 – 2011-04-29 21:35:30