2014-01-19 178 views
-1

我有一個使用Java套接字的多玩家遊戲,服務器是一個標準的Java應用程序,客戶端是一個運行在Web瀏覽器中的Java applet。將java套接字客戶端移植到HTML5套接字

現在自從上一次Java更新(Java 7更新51)以來,所有小程序都需要代碼簽名,所以我想從小程序中移動路線並在HTML5中重寫客戶端。

我一直在調查socket.io,它似乎很容易,但我找不到任何有關如何將它實現到我的服務器的信息。

我想保留在Java服務器,因爲它將是很多工作來移植它,所以有沒有任何libs,我可以用我的服務器,使java套接字服務器之間的通信可能和一個socket.io客戶端,或者什麼是最好的方法?我真的需要移植完整的服務器嗎?

謝謝。

+1

一個插座是一個插座;你根本不需要改變服務器。 (除非你在applet和服務器之間使用Java對象序列化,在這種情況下,你將不得不在服務器端重構你的網絡代碼,而不是這樣做,並使用更適合的東西,比如JSON)。 –

+0

你是對的一個套接字是一個套接字,但是socket.io不能用於Java ServerSocket,你必須實現Handshake,因爲socket.io可以創建多種類型的連接,並且你需要處理所有的這就是爲什麼我在尋找一些可以幫助我的lib,因爲我找不到任何有關如何在java中創建自己的Handshake處理程序的信息。 – Rias

+0

java中的'ServerSocket'完全沒有什麼特別之處。它與系統上的底層本地C庫進行通信,並創建與任何其他語言的其他套接字完全相同的TCP套接字。 telnet連接到它當然沒有問題,您的網絡瀏覽器也沒有問題。 –

回答

0

socket.io工作的html5 WebSocket不等於「普通」C或Java套接字。它通過TCP實現了自己的協議,其中包括握手和其他內容。要移植你的服務器,你必須使用庫,也許this可以幫助你。請參考here

+0

謝謝,這幫助我理解了Websockets是如何工作的,並且我爲純Websockets和[netty-socketio]找到了一些libs [Java-WebSocket](http://github.com/TooTallNate/Java-WebSocket)(http: //github.com/mrniko/netty-socketio)與socket.io配合使用 – Rias