2011-05-25 67 views
2

我想在Websockets上找到一個很好的(最新的)Java Trail類型的初始教程,包含Javascript客戶端代碼和Java服務器代碼(實際上可以)。在服務器端,如果我只需要創建一個簡單的套接字服務器或類似的東西,請告訴。到目前爲止,我還沒有發現任何東西(儘管我已經搜索了幾個小時),它提供了像這樣的基本信息(客戶端除外,顯然非常簡單)。Websockets上的簡單(Java,Javascript)開始

我對使用現有的Websocket服務器系統不感興趣(除了從簡單的教程中以簡單的複製粘貼開始)。如果你有興趣,我會告訴你爲什麼在下面。

我有一個開源項目,早在開始之前就已經開始乞求HTML5(從很多年前的初始構想開始)。從Websockets獲得雙向溝通,而不是長時間輪詢,永久性框架等,看起來像是贏家。 (框架)軟件的當前版本是HLL「光」 - 我的典型重點是不拖拽額外的代碼。它僅使用Java SE,但我打算使用EE通信構建版本。我現在可以輕鬆地安裝整個框架,留出空間用於手機等小型設備上的應用程序組件。

  1. 我想要最小的代碼。
  2. 我很自豪能夠理解系統中的所有代碼。
  3. 如果你不得不告訴那些想要試用它的人們,他們必須下載並安裝各種其他開源代碼才能做到這一點,我認爲這是對一個新的開源項目的死亡。
  4. 我不希望我的代碼在其他人的代碼中發生更改。
  5. 這真的不應該是那麼困難 - 如果我找到正確的文檔。

更新:我不再需要Websockets上的簡單教程。我很快就建立了一個生產類websocket服務器,並有一個非常好的基於瀏覽器的客戶端用於測試。我現在正在建立一個非瀏覽器的客戶端來使用它。構建一個實現完整標準的多客戶端websocket服務器並不簡單,順便說一句。 (事後看來 - 難怪我沒有得到任何答案。)如果它將作爲基於瀏覽器的客戶端的獨立服務器工作,它需要http(至少提供網頁)和其他內容。這不是一個心靈的項目,也不是一個沒有時間投入的項目。

回答

3

自從首次發佈以來,我一直在構建自己的WebSocket服務器。夢想所有這些都會很快過去。然而,我正在接近足以提供免費測試版中的「釋放」一詞,以供任何想要websocket服務器的人使用。 (注意,我只是「提到」這個詞 - 我至少還有幾個星期的時間)。這是一個輕量級且快速的多用戶服務器。我最終將添加http支持,因此不需要其他服務器來交付網頁(無論如何,WebSockets都是升級的http連接)。我還將添加HLL功能。首先,它會簡化應用程序。儘管我堅持不懈地保持「輕量級」的地位,但這種整體組合一直是人生的抱負,我相信開發人員會發現,從簡單,直接到大規模複雜,分佈式,智能系統的構建都是令人驚歎的。

我已經使用了最新版本的標準,它是最終的草稿版本,如果與最終標準不一樣,可能會非常接近;到目前爲止,它適用於Chromium(Chrome dev)和Firefox。然而,WebKit中顯然有一些代碼爲其他瀏覽器提供了支持。我還沒有嘗試過。使用瀏覽器,我至今已經建立了連接並且傳遞了大量和小型文本消息。這就是我迄今爲止發現的瀏覽器處理。我認爲它支持非常大的文本「消息」實際上只會用於與HTML5本地存儲功能相結合的文件傳輸。我還沒有嘗試過。二進制轉換可能會在某些時候連接到HTML5流媒體視頻和音頻,但到目前爲止我還沒有提到它。

我目前正在研究一個Java客戶端,它將支持完整的標準,包括ping和二進制傳輸,文件傳輸 - 整個蠟球。我所需要的大多數已經爲服務器和其「回聲」應用程序構建,其中包括與客戶端一樣的消息發送。然後,我將重新討論一些我最早的工作,以便在添加新功能時以一種很好的方式進行概括。我認爲,在許多情況下,在應用程序中擁有一個或多個Java websocket客戶端將是一件好事。它還會爲Web瀏覽器提供完整的功能,只要它們準備好了。

我也知道Opera在HTML5愛好者中頗受歡迎。我實際上開始使用他們支持的標準版本,所以添加它不應該很困難。 (只是想找到我的方式 - 並獲得了特定於該版本的工作。)我非常想花時間爲該版本提供支持,即使它在幾個月內會完全過時。只是Opera對其他HTML5的東西非常擅長,並且有大量的愛好者使用它。另一方面,他們主要在瀏覽器客戶端工作,我不知道他們是否會參與構建服務器端應用程序。