1. 引言
目前,即時通訊市場已經從多家競争時代走向壟斷統治時代。大多數即時通訊軟體已随着時間的推移逐漸退出競争舞台。即時通訊軟體的使用者群也逐漸增多。這标志着即時通訊市場已逐漸走向成熟。
在即時通訊的發展過程,有兩個很重大的特點:
1、互動的資訊日益複雜:從早期的文字、檔案、音頻到現在日益流行的視訊資訊。
2、互動的群體日益普遍:從早期的專業人員到現在的人民大衆以及企業級的需求。
人類對資訊的實時性需求,注定即時通訊必将成為曆史的潮流,他的廣泛性将和移動通訊一樣,不可逆轉。通過即時通訊,我們可以在網絡上,更加方面地互動資訊,即時互動一切需要互動的資訊。
随着未來網際網路的發展完善,即時通訊将會應用到更多的領域,并且發揮重要的作用。
2. 系統分析
2.1 系統功能要求
下面将着重對系統功能和設計做詳細介紹。主要包括以下四個子產品 :使用者注冊/登入子產品、好友清單及狀态實時檢測子產品、單人聊天子產品、群組聊天子產品、好友查找/添加子產品、退出子產品。其中使用者注冊/登入子產品包括使用者注冊、使用者登入兩個子子產品;好友清單及狀态實時檢測子產品包括好友清單更新、好友線上狀态檢測、新消息檢測、狀态設定四個子子產品;單人聊天子產品包括消息發送、消息更新兩個子子產品;群組聊天包括消息發送、消息更新、群組成員清單更新三個子子產品。
(1) 使用者注冊/登入子產品
① 使用者注冊
該子產品實作使用者的注冊,使用者填寫完系統要求的資料後,系統賦予每個使用者一個唯一的六位數帳号,并且将所有資訊寫入資料庫。
② 使用者登入
該子產品實作使用者的登入,在驗證使用者送出的使用者名密碼後,若驗證通過,則将登入辨別符設為已登入,若不通過,則傳回登入界面。
(2) 好友清單及狀态實時檢測子產品
① 好友清單更新
該子產品實作隔一定時間向伺服器請求資料,取得最新的好友清單并将最新内容顯示在好友清單裡面。
② 好友線上狀态檢測
該子產品實作隔一定時間向伺服器請求資料,取得好友是否線上辨別,若使用者線上,則顯示彩色頭像,若不線上,則顯示灰色頭像。
③ 新消息檢測
該子產品實作隔一定時間向伺服器請求資料,取得使用者最後已讀資訊時間,并對比即時消息發送時間,若為新消息,則發送該消息的好友頭像閃動,否則,頭像為靜止狀态。輕按兩下頭像可打開與該使用者的聊天視窗。
④ 狀态設定
該子產品實作使用者可以通過點選單選按鈕直接設定自己的線上或隐身狀态。
3) 單人聊天子產品
① 消息發送
該子產品實作在聊天視窗輸入文字,點選“發送”按鈕或用Ctrl+回車組合鍵即可發送消息,可設定文字大小、顔色、粗體、斜體、下劃線等樣式。
② 消息更新
該子產品實作隔一定時間向伺服器請求資料,取得發給自己的即時消息,并顯示在聊天視窗裡。
(4) 群組聊天子產品
該子產品實作在聊天視窗輸入文字,點選“發送”按鈕或用Ctrl+Enter 組合鍵即可發送消息,可設定文字大小、顔色、粗體、斜體、下劃線等樣式。
② 消息更新
該子產品實作隔一定時間向伺服器請求資料,取得即時群組聊天消息,并顯示在聊天視窗裡。
③ 群組成員清單更新
該子產品實作隔一定時間向伺服器請求資料,取得該群最新的成員清單,并顯示在聊天視窗的成員清單裡面。
(5) 好友查找/添加子產品
該子產品實作使用者可通過輸入使用者号碼或昵稱等條件來搜尋好友,并實作對搜尋出的使用者的資料檢視和添加好友功能。
(6) 退出子產品該子產品實作在使用者關閉線上聊天視窗或點選“退出”時将使用者的狀态設定為離線并且傳回登入界面。
2.2 系統的可行性分析
制作系統前,在充分調研的基礎上做出系統的開發目标,即系統建立後所要求達到的運作名額,這是系統開發和評價的依據。系統充分考慮了使用者對軟體功能的需求,為系統設計了一些實用關鍵的功能。不足之處是,系統目标不可能在短時期内就會實作的非常具體 , 它還将在以後的開發、維護過程中逐漸被完善。但從總體上看,系統擁有較強的可行性。系統的目标确定後,從以下幾個方面對系統的實作進行可行性分析:
2.2.1 技術可行性
系統用到的硬體、軟體性能要求、環境條件都是能具體實作的,再加上對開發系統所用到的技術做了進一步的研究,遇到困難時得到了指導老師和同學的協助,是以說在技術方面是可行的。
2.2.2 經濟可行性
相關技術書籍可以在學校圖書館借到或在書店買到,并且設計開發系統的電腦可以在機房免費使用,是以要完成該系統在經濟上是可以承受的。
2.2.3 運作可行性
系統的主要功能開發完以後,對系統進行了調式,運作的結果基本能達到使用者的要求,相信在以後進一步的完善中會得到令人更加滿意的結果,盡管目前系統還有需要改進的地方,但是初步的結果表明運作方面是可行的。按上述幾個方面進行可行性分析、研究後,得到結論:系統開發是可行的。
2.3 系統特點
運作速度快、效率高、界面友好、注重使用者體驗、操作方式與主流IM 軟體類似;并且該系統不需要使用者安裝用戶端,通過WEB 浏覽器即可使用其所有功能[3]。
3. 系統總體設計
3.1 系統總體設計
基于B/S 模式的即時通訊軟體的設計開發遵循一個原則,就是緊密地結合使用者的需求和體驗。該系統是在PHP+MySQL 環境下進行開發的,設計了多個子產品,由Ajax 技術實作其資料的實時傳輸,利用用戶端的動作觸發JS 函數實作大部分功能。
3.1.1 系統結構圖
在系統的概要設計階段,最主要的就是确定系統的整體結構。确定了系統的總體結構,也就相當于确定了系統的總體目标,根據這個總體目标,再一一設計各子子產品。系統總體結構圖如圖1:
<a target="_blank" href="http://blog.51cto.com/attachment/201012/164557240.jpg"></a>
4. 資料庫設計
在設計應用程式之前,應先組織資料。通過建立資料庫來管理資料,既能增加資料的可靠性,也便于系統的開發。建立資料庫的優點:建立資料庫是實作資料內建的有效手段,資料庫按一定的結構集中了應用系統中的資料,使之更便于統一管理;可以定義資料詞典的功能;允許在資料庫中建立永久關系。
資料庫設計的任務是确定系統所需的資料庫。資料庫是表的集合,通常一個系統隻需一個資料庫。資料庫設計可分為邏輯設計與實體設計兩個步驟。第一步确定資料庫所包含的表及其字段。第二步确定表的具體結構,即确定字段的名稱、類型及寬度;此外還要确定索引,為建立表的關聯準備條件。
4.1 資料庫邏輯設計
即時通訊軟體要處理大量的資訊或資料,為了使資訊的存取、管理工作更加友善、安全、快捷,特别為該系統設計了一個資料庫,并且設定了許多資料庫表,目的是為了節省伺服器空間,便于使用者的查詢和管理。 本系統的資料庫表為:users(使用者資訊表)、friendlist(好友資訊表)、groups(群組資訊表)、grouplist(群組成員資訊表)、chatlist(個人聊天資訊表)、readflag( 已讀資訊辨別表)、glist(群組 聊天資訊表)。這些表中都存在一個主鍵id,id 是唯一的,不能重複,這樣可以保證資料錄入的準确性,系統中的id 可自動增加的,每設定即添加完一條記錄後,id 會自動加1,避免在輸入時會重複輸入同一個id,造成資料的丢失。同時建立外鍵以實作資料完整性的限制。
4.2 資料庫的建立與連接配接
在上面的章節裡隻做了資料的收集、整理和加工。并沒有對資料庫進行操作 ,而應用程式一般都與資料庫有着密切的聯系,所有表的建立都要在資料庫中儲存才能被程式調用。是以,資料庫管理在應用程式開發的初級階段是非常關鍵的。下面對資料庫進行操作。通過MySQL 的第三方管理軟體phpMyAdmin 建立資料庫,命名為my_db,建立完資料庫後,便可以在建立的資料庫中進行所需的資料表的建立、編輯、删除等操作。由于系統絕大部分子產品都需要操作資料庫,是以将連接配接資料庫的代碼封裝到一個php 檔案中,需要連結資料庫的子產品直接引用該檔案即可,減少代碼備援。該檔案定義的連接配接資料庫的函數是:
function DBconnect(){
$conn=mysql_connect('localhost:3306','root','password');
if($conn) mysql_select_db(my_bd);//my_db 為資料庫名稱
return $conn;
}
5. 結論
本文轉自 fanxiaojun 51CTO部落格,原文連結:http://blog.51cto.com/2343338/460405,如需轉載請自行聯系原作者