2015-10-29 97 views
2

是否可以在Java中實現自定義WebSocket應用程序而無需在GlassFish,Tomcat,Jetty等Web服務器上運行它?在沒有Web服務器的情況下使用Java Websocket API實現

我打算開發一個非常自定義的應用程序,並希望實現我自己的方式來管理線程,監控,負載平衡,消息傳遞等類似的東西。 (與例如Java TCP的ServerSocket相比)我知道Tyrus容器如獨立服務器和Servlet支持的Grizzly集成,這裏也是Jetty,但我不確定這是否是我正在尋找的。 Grizzly或Jetty本身可能是一個獨立的解決方案嗎?我知道Tyrus是Grizzly WebSocket實現的一種包裝,但說實話,我不確定這兩者是如何相互關聯的。

任何建議都比歡迎!謝謝!

回答

0

換句話說,你試圖實現一個WebSocket服務器(類似於https://code.google.com/p/jwebsocket/)?

+0

謝謝你的回答!是的,WebSocket服務器是我想要構建的。像jWebSocket這樣的東西,當然不是那麼複雜和全面。我瀏覽過jWebSocket的文檔,他們使用自己的內部TCPEngine,但也使用Netty或Jetty等第三方引擎。基於此,我認爲有可能實現由例如JettyEngine(?) – friendOfOURS

+0

驅動的獨立服務器。雖然這可能變得非常複雜(取決於您將從頭開始編寫哪些部分),但完全可能。儘可能我會建議重用 - 所以選擇儘可能大的「塊」。但天空是極限 - 你甚至可以下降到[協議級別](https://tools.ietf.org/html/rfc6455),如果你想:) – PietB

+0

鏈接是404,請修復; http://jwebsocket.org/downloads/jwebsocket-latest-versions – user1133275

2

Tyrus不是「灰熊的某種包裝物」,但它可以在其上運行。 (Tyrus是WebSocket API for Java(JSR 356)的參考實現,它是Java EE的組成部分)。

沒有網絡服務器(假設你正在談論appserver或某個「大」)運行是完全可能的和非常簡單的,因爲我們正在使用它來進行我們的「e2e」測試。 (如果這很重要,我是Tyrus的開發者)。

啓動可處理WebSocket連接的新容器非常簡單:Main.java,請參閱項目聲明[pom.xml]以獲取完整的依賴關係列表。

相關問題