榮先釗 林宇馳 張上


摘要:隨著互聯網的發展,人們對網絡的依賴越來越大,越來越離不開網絡,網絡聊天工具作為一種交流工具,已經受到廣大網民的青昧。當前環境下,較多公司限制其員工在辦公時使用外網,而局域網開始進入大眾視野。本文通過使用JavaSE編寫GUl聊天界面,通過Tomcat服務器實現網頁用戶在線注冊,采用Socket、Ajax等技術實現多人聊天室、點對點及時聊天和在線翻譯等功能。
關鍵字:Java SE Socket Ajax聊天系統
引言
隨著全球信息化的發展,局域網由于其高效、安全和快速處理事務的優點,開始進入網絡市場。該系統的目標是建立一個即時翻譯的局域網聊天系統,該系統通過MysoL,Tomcat服務器以及百度翻譯的API從而實現多種語言之間即時翻譯的快速通信,為使用此軟件的用戶帶來很大的便利和提高溝通水平。系統由服務器端與客戶端組成,服務器端控制客戶端之間的數據傳輸??蛻舳说乃行畔l往服務器端,再由服務器進行消息的分析處理并做出相應的控制,服務器端是所有信息的中心。服務器端可以查看所有用戶的聊天記錄,監控所有用戶的狀態,發出用戶上線、離線提示等公告,客戶端則提供接收公告的功能。
1系統分析
本系統是一個局域網的即時翻譯聊天系統,主要實現在線翻譯的局域網聊天,其中包括了用戶注冊用戶登陸,用戶聊天,在線翻譯等功能。該系統使用時,首先需要用戶通過網頁進行注冊user和password,數據提交至數據庫后,客戶端登陸需要輸入user和password,此時服務端啟動,客戶端連接。當要發送消息時,可以點擊翻譯即可將中文翻譯成英文,從而達到快速交流的目的。
(1)用戶注冊
使用系統之前,如果該用戶未注冊,必須首先進行注冊后使用,注冊是在HTML頁面進行注冊http://localhost:8080/reg。注冊成功后,提交數據會進入到數據庫。
(2)用戶登陸
如果用戶已經有ID,登陸成功后方可使用系統,普通用戶登陸可使用聊天和即時翻譯等功能。
(3)在線翻譯
該系統帶有即時翻譯的功能,使用的是百度翻譯API,默認支持中英翻譯。
2關鍵技術
(1)多線程處理
服務器:聊天系統有一個聊天控制中心界面,可以顯示所有的在線成員,與每一個客戶端鏈接的都對應一個處理線程,用來處理客戶端的請求。為了防止數據庫的臨界資源被臟讀、重復度等錯誤操作,采用并發控制為每個客戶端的資源操作對象設置“鎖”標記,從而保證在同一時刻,只有一個客戶端能對該資源進行寫操作,極大程度保證的數據的正確性。
客戶端:每個客戶端都對應一個線程,且在服務端都有相應的ID編號,客戶端與客戶端之間可以建立連接,用來傳輸消息或數據文件。
(2) Ajax
Ajax(Asynchronous Javascript And XML)即 異 步Javascript與XML,其并非是一個新技術,而實把原有的技術整合到一起。
當我們輸入用戶名時,往往需要檢測該用戶名的合法性,此時刷新整個頁面顯得龐大,用戶體驗并不是很好,為了解決局部刷新為題,而其他地方保持不變,只刷新某些地方。常用的請求方式有Get/Post,使用方法通常為以先步驟:
1).創建XmlHttpRequest對象
這部分創建的對象,由于需要針對不同的瀏覽器,需要做出判斷,所以不用直接寫,可重復使用。
2).發送請求
request.open(“GET”,”/AjaxAndjQuery/demoServlet017n ame=enc&password=123'”,true); request.send();
注:request對象通過第一步的XmlHttpRequest得到。
3).響應服務器發送過來的數據
(3)在線翻譯
在實際使用中,可能會遇到不同語言的人之間的溝通,該系統通過使用百度提供的API接口,調用服務,可支持多種語言之間的轉換。 3系統設計 (1)客戶端登錄UML用例圖 用例是一種描述系統需求的方法,在該系統的使用中,用戶的注冊在Tomcat端,登錄在桌面客戶端,各種類型的開發活動包括項目管理、分析設計、測試、實現等都是以系統用例為主要輸人工件,用例模型奠定了整個系統軟件開發的基礎下面就來進行用例建模。
下面就是一個登陸用例模型:
在上面圖這個簡單用例中,參與者(Actor)是系統使用用戶,在這里只有一個簡單的用例(Use Case),即登錄,他之間通過通訊關聯(Communication Association)聯系起來構成一個完整的用例模型。
4結語
目前的局域網聊天的軟件種類很多,幾乎能滿足各行各業的需求,但是技術不斷革新,依然存在許多可以改進的地方。從運行環境來看,現在的局域網聊天軟件大多只針對一個系統,而采用JavaSE開發的局域網聊天系統則實現了跨平臺運行,實現了跨平臺的局域網通信。又比如現在翻譯軟件興起,但是往往都是在聊天的同時去copy翻譯的內容發送,極大程度上影響用戶體驗,而該系統將翻譯功能嵌入在聊天軟件之中,使其功能得到了很大的提升。
參考文獻
[1]李淑梅,王志彬.Socket在局域網聊天系統中的應用[J].吉林師范大學學報:自然科學版,2014,35(1):71-73.
[2]杜金祥,杜宇軒,基于Linux的局域網聊天系統設計[J].山西電子技術,2014(1):6769.
[3]汪桃華,宋兵,萬方,基于Java的局域網聊天系統[J].內江師范學院學報,2008,23(B08): 242245.