2010-07-29 57 views
4

我正在爲基於Java的移動Web應用程序編寫後端,我想知道可擴展性和易用性是什麼,使用WebSockets與像Comet這樣的Long-Polling解決方案。另一種選擇是使用TCP來實現我自己的解決方案。從我讀過的內容看來,您似乎需要在專用服務器上運行Long-polling解決方案,因爲在開始處理大量用戶時,它們在Tomcat/Jetty中運行得並不順利。 WebSockets聽起來像它可以更好地擴展。在Comet上使用Websockets有什麼不利之處,還是應該使用TCP連接來使用我自己的解決方案?我正在尋找使用最少流量的選項。WebSockets與長輪詢與TCP可擴展性/易於使用

回答

5

我想這取決於你的用例和學習新事物的容忍度,但是肯定的是,沿着使用WebSocket API進行通信甚至SSE的路徑將比傳統的長輪詢/ Comet解決方案更好原因 - 您提到的一個原因 - 可擴展性,還有帶寬利用率和延遲。重要的是要明白,WebSocket是Web到桌面的TCP是什麼,例如一個插座。在桌面解決方案中,您不必針對TCP進行編碼,您可以使用支持STOMP或XMPP over TCP等傳輸協議的客戶端庫。您在使用WebSocket時也是這樣,選擇一臺服務器與例如XMPP服務器和XMPP客戶端庫,以通過WebSockets與服務器進行通信。

你可以看到我們的例子here,我們有docs you can read here

需要注意的是瀏覽器採用HTML5 WebSocket--目前在Chrome和Safari中,即將推出FF和Opera。我們已經解決了這個問題,但是如果您計劃構建自己的服務器,則必須爲舊版瀏覽器創建回退解決方案。

+0

這個問題的外部引用現在是死鏈接。 – jfriend00 2016-01-13 16:14:30