文/吳開鋼
基于Linux系統的即時通信系統的設計與實現
文/吳開鋼
即時通信可滿足人們對于休閑娛樂以及聯絡溝通等多方面需求,因此文章基于Linux系統的即時通信系統為主要研究對象,首先對即時通信系統及發展現狀進行簡要分析,其次對系統設計進行闡述,然后提出實現途徑,以供相關人士參考。
即時通信系統 Linux系統 P2P模式
當前的嵌入式行業,Linux系統已經作為一個開源的操作系統,其應用范圍越來越廣泛。因為它的源碼公開,更方便開發人員互相學習與交流,還可以在多種硬件平臺通行,據統計,其現在已成為全球使用最多的一種UNIX類操作系統。文章對基于Linux系統的即時通信系統設計進行分析與闡述。
即時通信是一種新型的通信方式和網絡通訊技術,是通過互聯網或者其他類型的網絡建立的一種新型虛擬網絡通信環境,因為有計算機鍵盤和無線設備配合,人們可以及時有效地進行交流與溝通。
互聯網技術應用不斷深入人們的日常生活工作和學習中,而即時通信系統也在不斷變革,經由傳統的文字通信逐漸演變為語音視頻即時通信。最近的權威調查結果顯示,當前世界上已經有二十五億人擁有一個以上的即時通信應用賬戶。考慮到當前互聯網用戶不斷增加,其對即時通信系統的使用也將大大拓展市場需求。比如,現在最常見的情景不是傳統的名片交換,而是微信好友的添加。
跟傳統的即時通信系統相比,系統無需中央服務器,應用的是可以分布于Internet網內部不同地域的分布式服務器,此類服務器需要保證網段內用戶相互連接,為保證信息通訊即時,需要將其與相鄰的服務器相連接。該系統服務器架構和現代的電子郵件系統相同,任何一臺服務器發生故障都會對服務器控制功能造成影響,降低了服務器的服務質量。
即時通信系統結構一般分為兩種模式:客戶機/服務器模式以及P2P模式。文章采用客戶機/服務器模式來開發系統。即時通信客戶機/服務器模型簡稱C/S模型。C/S模型是一種非對稱的非編程模式,其基本思想就從應用層面可以將功能劃分為兩個部分,可以在不同的計算機上運行,各種任務都進行了明確的分工,形成一個完整的應用功能。其中需要合理設置即時通信服務器,最主要是能夠對通信客戶機提出的服務請求進行應答,為用戶提供全方位的服務。

表1:協議中的命令
為了使服務器端和客戶端各模塊之間的多函數通信更加規范,需要建立統一的協議,如表1。文章采用的是以用戶數據包(UDP)方式傳輸登陸、下線、消息、列表、更新和注冊等請求,因此需要將報文中含有的信息通過協議的形式上報。
服務器端的每個狀態之間的關系必須明確,在服務器端模塊間不可以存在并發關系,而且在main函數中初始狀態必須設置為接收狀態,以便接收客戶端發送的請求,然后進行解析。在解析出客戶端的請求后,將接收狀態返回轉變為處理狀態,在處理請求后將其變為接收狀態,最后才等待接收客戶端的后續要求。其特別之處在于,服務器端的登陸模塊需要處理異步操作。
客戶端的狀態分為4個異步模塊:需分模塊進行更新,有步驟的向客戶端發送并更新數據報,而服務器端則需定期接收數據報,如果超出規定時間,服務器將接受不到在線客戶端發送的更新報文,并最終將之標記為離線狀態;輸入—發送模塊,該模塊的功能是等待客戶輸入信息,在其輸入后,該模塊立即將數據報發送出去,接著繼續等待客戶下一輪信息輸入;接收—輸出模塊,該模塊的作用是接收服務器端的數據報,并且在客戶端的輸出設備上顯示有效數據;列表模塊,該模塊需定期向服務器發送請求列表數據報,通過服務器查詢在線數據庫中的在線用戶端ID,并且打包將其發送至客戶端。
系統需要約束用戶的權限,而用戶權限主要是由服務器端進行管控。當管理員登錄系統后,啟動服務器,可以對用戶的登錄與操作記錄進行匯總和篩選。此類數據信息存入后臺數據文件中進行存儲,一般用戶可以通過注冊并通過服務器驗證后方可發揮出服務器的使用功能。服務器功能主要如下:驗證登陸信息、發送系統信息,對新用戶的申請信息進行處理與更新。
客戶端的基本功能如下:用戶登陸與注冊,需詳細記錄用戶的個人信息,如郵箱等,在注冊成功后返回賬號,將其作為用戶系統的唯一表示,在二次登陸時,賬號和密碼驗證成功后便可登陸;用戶間的信息互通,用戶好友列表中互加好友就可以完成文字信息以及文件信息的傳遞;用戶信息的查詢與修正,在用戶聊天時可以對感興趣的用戶資料進行瀏覽查閱。
即時通信系統依賴互聯網和相關應用配置才能進行信息的接收、處理和傳輸,所以假如在此過程中程序或者網絡發生錯誤或遭到攻擊,基本配置出現錯誤,則極易引發通信系統故障。為了有效解決此類故障,需要采用積極的措施如改良后的通信技術來對通信網絡系統進行維護。常見的例子是,因為系統被破壞造成系統不能正常運行,一般的處理手段是,立即與系統管理人員聯系,重新啟動系統。若系統中的某一業務模塊發生故障不能正常運行,則需要對數據庫表進行檢查,根據數據字典的實際情況恢復相關數據表結構。
綜上所述,當前即時通信被看做是電子郵件、WWW、FTP外的第四種通信應用服務,對傳統網絡的應用造成了很大的沖擊。文章對即時通信系統的含義和發展現狀進行簡要分析,并從系統設計與實施途徑入手進行研究,從而促進通信系統的長遠發展。
[1]楊化志,許蘭,李培峰,等.基于IPQueue的即時通信協議還原系統的設計與實現[J].計算機應用與軟件,2012(03):46-51.
[2]翁錦深,葉曉靖,黎德生.基于Linux的RFID交互系統的設計與實現[J].電子設計工程,2012(18):1-4.
作者單位 廣東九聯科技股份有限公司 廣東省惠州市516007
吳開鋼(1984-),男,廣東省汕尾市人。大學本科學歷。現從事linux和android系統工作。