2016-02-05 142 views
0

是否可以實現基於Java的服務器HTTP請求和偵聽websockets?我想將HTTP客戶端和客戶對象的JSON對象響應給websocket客戶端。同時服務HTTP和WS客戶端

+0

每個Java EE服務器都支持這一點。所以很難理解你爲什麼用問題中存在的[java-ee]標籤問這個問題。這樣的問題意味着你實際上從來沒有嘗試過/使用過一個Java EE服務器,並且只想讓homegrow(:X)成爲「服務器」。出於這個原因,我已經剝離了[java-ee]標籤。 – BalusC

回答

1

是的,這是可能的。鑑於您已實施servlet/s匹配客戶端請求的路徑,Web服務器將無論如何迴應HTTP請求。您可以使用servlet容器託管您的servlet。當你說套接字(not web sockets)時,我假設你正在討論打開一個端口,在那裏Java服務器將監聽可能通過內部網絡或來自其他網絡的任何基於UDP或TCP的請求。您可以找到許多用於實現偵聽給定端口的UDP或TCP服務器的源代碼示例。

另請注意,如果端口對外部網絡可見,則在服務器上打開多個端口會引發安全威脅。

+0

你的意思是應該在服務器(物理服務器計算機)中運行兩個獨立的程序嗎?一個是說tomcat的servlet,另一個是jvm的socket服務器? – Dinushan

+0

不可以。您可以在同一個JVM上運行。當您有一個可用的Java Web應用程序時,您可以添加另一個類,該類也將監聽給定端口上的傳入請求 – Bunti