2013-10-11 156 views
1

現在,關閉網絡應用程序是一個熱門話題,但似乎並沒有一個獨特的解決方案。特別是對於後端,獨立於編程語言。WebSocket:後端最佳解決方案

我打開這個主題來討論提供給社區的各種解決方案。

我試過氣氛,但經驗有點令人沮喪。 我花了很多時間玩這個框架,最後我發現它並不完全對開發者友好。首先是基於Maven的項目:除了開發人員必須學習(或至少知道)maven如何工作以及pom.xml是什麼的文檔之外。 概念看起來很簡單,但它有大量的java註釋,在我看來,這往往會使事情變得過於複雜。這個框架的優點是能夠決定和使用客戶端支持的協議。

從我讀到的node.js看起來更適合開發人員。 您對這些技術有何看法?

+0

什麼是「容易」的你很大程度上將取決於你所熟悉的技術。 – jtahlborn

回答

2

我強烈推薦node.js.

它用javascript編碼,我個人非常喜歡能夠堅持使用網絡語言。

另外,您可以使用socket.io,它使用node.js實現websockets。

+0

我也認爲這裏的大多數人會選擇node.js作爲websocket解決方案。 我剛剛發現了這個webbit:http://thechangelog.com/webbit-a-java-event-based-websocket-and-http-server/:服務器端java websocket服務器。即使它沒有實現回退協議,我認爲它可能是一個有效的java替代品。 – giulio

5

我是CometD的項目負責人,這是一個Web消息傳遞框架,它與傳輸不可知(帶有後備到http的websocket)併發布了許多功能,如消息確認和其他許多功能。 CometD也基於Maven,但它的工件可以與任何其他已有的構建系統(Ant,Ivy,Gradle等)一起使用。

CometD concepts非常簡單,您可以編寫annotateduse inheritance服務。彗星的可擴展性非常好:我們的負載測試中的單個服務器能夠處理200k個websocket客戶端,其他人則達到了更多(https://twitter.com/myBuzzNight/status/388024046027161600)。

CometD學習曲線相當低,從我的報告。 一個人在幾天內設置e-chat.co

您可以使用one liner設置骨架CometD項目,甚至可以使用CometD tutorials使用的預製骨架項目。

JavaScript是它的語言,你可能會發現,如果你的項目增長超過一定的規模,你希望使用像Java那樣的靜態類型語言來實現它的重構,工具,IDE等等,更不用說了可用於監視/管理的JVM的工具等。

JVM在多線程場景(如服務器端事件驅動的應用程序)中的可伸縮性是衆所周知的。

像其他解決方案一樣,CometD是backed by a company以防您需要專業支持。