專利名稱:一種統計在線用戶數量的方法、裝置及系統的制作方法
技術領域:
本發明涉及通信領域,特別涉及一種統計在線用戶數量的方法、裝置及系統。
背景技術:
隨著網絡技術的發展,各式的網絡即時通信服務不斷涌現,例如,在線聊 天室、在線直播室等等。為了便于系統的維護升級,需要對在線用戶的數量進
行定期的實時統計,現有技術下,通常使用下述兩種方法
第一種方法為各用戶終端通過利用active控件與網絡側的Web服務器保 持長連接,而Web服務器通過對長連接數量的統計來確定實時在線的用戶數 量,目前,大部分網絡即時通信服務采用這種方法對在線用戶的^t量進行統計 但是,應用長連接,會極度消耗Web服務器的CPU資源,為了保證Web服務 器的負載能力,需要對在線用戶的數量進行限制,這不利于網絡即時通信服務 的進一步發展,另一方面,用戶終端只有使用基于IE核心的瀏覽器才能夠使 用active控件與網絡側保護長連接,這便在很大程度上局限了用戶群的擴展, 同樣不利于網絡即時通信服務的進一步發展。
第二種方法為Web服務器在本地內存中記錄每個在線用戶的最近訪問時 間,并且每隔一段時間將最近訪問時間歸屬在設定時間段內的用戶確認為在線 用戶,接著,以此為基準來統計上述時間段內的在線用戶的數量。但是,由于 最近訪問時間記錄在內存中,這種方法只適用于單臺Web服務器,而無法適用 于多臺Web服務器,這樣,便限制了系統的擴展,進而限制了網絡即時通信服 務的進一步發展。
發明內容
本發明實施例提供一種統計在線用戶數量的方法、裝置及系統,用以減少 系統在統計在線用戶數量時的性能消耗,同時增強系統的可擴展性。
一種統計在線用戶數量的方法,包括
在用戶訪問過程中,用戶終端定期向所述Web服務器發送攜帶用戶身份標 識的通知消息,Web服務器每次接收到所述通知消息時,將數據庫內保存的用 戶在線記錄中該用戶的最近訪問時間更新為當前的系統時間;
所述Web服務器定期根據各用戶的用戶在線記錄分別確定其相應的最近 訪問時間,將最近訪問時間歸屬至設定時間范圍的用戶確定為在線用戶,并統 計所述在線用戶的數量。
一種Web服務器,包括
通信單元,用于在用戶訪問過程中,接收用戶終端定期發送的攜帶用戶身 份標識的通知消息,并在每次接收到所述通知消息時,將數據庫內保存的用戶 在線記錄中該用戶的最近訪問時間更新為當前的系統時間;
處理單元,用于定期根據各用戶的用戶在線記錄分別確定其相應的最近問 時間,并將最近訪問時間歸屬至設定時間范圍的用戶確定為在線用戶;
統計單元,用于統計所述在線用戶的數量。
一種通信系統,包括
數據庫,用于保存用戶在線記錄;
用戶終端,用于在用戶訪問過程中,定期向Web服務器發送攜帶用戶身份 標識的通知消息;
Web服務器,用于在每次接收到所述通知消息時,將數據庫內保存的用戶 在線記錄中該用戶的最近訪問時間更新為當前的系統時間,并定期才艮據各用戶 的用戶在線記錄分別確定其相應的最近問時間,以及將最近訪問時間歸屬至設 定時間范圍的用戶確定為在線用戶,并統計所述在線用戶的數量。
本發明實施例中,用戶終端定期向Web服務器發送通知消息,以通知Web 服務器用戶當前的在線狀態,而Web服務器每次接收到所述通知消息時,將數 據庫內保存的用戶在線記錄中該用戶的最近訪問時間更新為當前的系統時間, 以及定期根據各用戶的用戶在線記錄分別確定其相應的最近訪問時間,將最近 訪問時間歸屬至設定時間范圍的用戶確定為在線用戶,并統計所述在線用戶的
數量。這樣,由用戶終端定期發送通知消息,便在一定程度上使Web服務器避 免了因為維護長連接而造成的性能消耗,使統計用戶在線時間對Web服務器性 能消耗的影響降到最低,從而保證了良好的用戶體驗;同時,本發明實施例中, 將用戶訪問記錄保存在了數據庫內,這種方法適用于多臺Web服務器,因此增 強了系統的可擴展性,當用戶數量過多時,可以按照需要增加相應數目的Web 服務器而無需更改在線用戶數量的統計方式,這有利于網絡即時通信服務的進 一步發展。
圖1為本發明實施例中通信系統體系架構圖2為本發明實施例中Web服務器功能結構圖3為本發明實施例中Web服務器記錄訪問用戶在線時間流程圖。
具體實施例方式
為了在Web服務器統計在線用戶數量時,減少其性能消耗,同時增強系統 的可擴展性,本發明實施例中,在用戶訪問過程中,用戶終端定期向所述Web 服務器發送攜帶用戶身份標識的通知消息,Web服務器每次接收到所述通知消 息時,將數據庫內保存的用戶在線記錄中該用戶的最近訪問時間更新為當前的 系統時間;所述Web服務器定期根據各用戶的用戶在線記錄分別確定其相應的 最近訪問時間,將最近訪問時間歸屬至設定時間范圍的用戶確定為在線用戶, 并統計所述在線用戶的數量。顯然,由用戶終端定期向Web服務器通知用戶的 在線狀態,可以使Web服務器避免因為維護長連接而造成的性能消耗,同時, 本發明實施例中,將用戶訪問記錄保存在了凄史據庫內,這便增強了系統的可擴
展性。
下面結合附圖對本發明優選的實施方式進行詳細說明。
參閱圖l所示,本發明實施例中,通信系統內包括多個Web服務器20、 多個用戶終端21和凄t據庫22其中,
數據庫22,用于保存用戶在線記錄;
用戶終端21,用于在用戶訪問過程中,定期向Web服務器20發送攜帶用 戶身份標識的通知消息;
Web服務器20,用于在每次接收到所述通知消息時,將數據庫22內保存 的用戶在線記錄中該用戶的最近訪問時間更新為當前的系統時間,并定期4艮據 各用戶的用戶在線記錄分別確定其相應的最近訪問時間,以及將最近訪問時間 歸屬至設定時間范圍的用戶確定為在線用戶,并統計所述在線用戶的數量。
本實施例中,由于將用戶在線記錄保存在了數據庫22內,因此,適用于 存在多臺Web服務器20情況,有利于系統的進一步擴展。
參閱圖2所示,本實施例中,Web服務器20包括,通信單元200、處理單 元201和統計單元202,其中,
通信單元200,用于在用戶訪問過程中,接收用戶終端21定期發送的攜帶 用戶身份標識的通知消息,并在每次接收到所述通知消息時,將數據庫22內 用戶在線記錄中該用戶的最近訪問時間更新為當前的系統時間;
處理單元201,用于定期根據各用戶的用戶在線記錄分別確定其相應的最 近訪問時間,并將最近訪問時間歸屬至設定時間范圍的用戶確定為在線用戶;
統計單元202,用于統計所述在線用戶的數量。
基于上述系統架構,本發明實施例中,對在線用戶的數量進行統計的技術 方案主要為Web服務器20將用戶的最近訪問時間等相關信息記錄在數據庫 22中,用戶終端21通過定時發起通知消息來通知Web服務器20更新數據庫 22內保存的用戶的最近訪問時間,Web服務器20定期統計數據庫22中最近訪 問時間在設定時間段內的用戶的數量來確定在線用戶的數量。那么,參閱圖3
所示,本發明實施例中,Web服務器20在用戶訪問時,記錄其在線時間的詳 纟田i乾禾呈^口下
步驟300:接收用戶終端21發送的登錄請求消息,該登錄請求消息中攜帶 用戶登錄標識和登錄密碼。
本實施例中,用戶登錄標識即是該用戶使用在線聊天室時注冊的用戶ID, 實際應用中,也可以設置其他標識,在此不再贅述。
步驟310:根據接收的用戶登錄標識和登錄密碼對用戶進行身份驗證。
步驟320:確定用戶通過身份驗證后,根據用戶登錄標識判斷數據庫22 中是否保存有對應該用戶登錄標識保存的用戶訪問記錄,該用戶訪問記錄用于 保存用戶的最近訪問時間,若是,則進行步驟330;否則,進行步驟340。
步驟330:將用戶訪問記錄中的用戶訪問時間更新為用戶當前的登錄時間。
步驟340:為用戶分配用戶身份標識,并對應該用戶身份標識在數據庫22 中創建相應的用戶訪問記錄,以及將用戶當前的登錄時間作為該用戶的最近訪 問時間進行保存;同時還需要將系統分配的用戶身份標識返回給用戶終端21。
在實際應用中,系統可以將用戶登錄標識作為用戶身份標識,也可以另行 分配專門的用戶身份標識,均可達到同樣的技術效果,本實施例僅以第二種情 況為例進行介紹,在此不再贅述;另一方面,若Web服務器20將用戶登錄標 識作為用戶身〗分標識,則無需再將該用戶身份標識再返回給用戶終端21。
在上述實施例中,用戶終端21在接收到Web服務器20返回的用戶身份標 識后,每等待設定的時長,便向WEB服務器20發送一個包含用戶身份標識的 通知消息,本實施例中,該通知消息為一個http請求;WEB服務器20根據用 戶的用戶身份標識將該用戶對應的在線記錄的最近訪問時間更新為系統當前 時間。較佳地,本實施例采用Ajax技術發送http請求,這不會引起用戶終端 上的瀏覽器頁面的刷新,因此用戶感覺不到用戶終端21和Web服務器20之間 執行了任何操作,在最大程度上保證了用戶體驗,另一方面,采用Ajax技術 發送http請求,用戶終端21并不限于僅能使用IE核心的瀏覽器,使用非IE
核心的瀏覽器亦可達到同樣的技術效果,這就進一步擴大了用戶群,有利于網 絡即時通信服務日后的進一步發展。用戶停止使用網絡即時通信服務后,用戶
終端21便不再向Web服務器20發送http請求,那么,該用戶的最近訪問時 間便保持在了最后 一 次更新的系統時間上。
通過上述方式,Web服務器20便可以準確地記錄各用戶使用網絡即時通 信服務時的最近訪問時間,那么,Web服務器20在后期統計在線用戶數量時, 便可以先確定預設的時間范圍(如,最近2小時或者上午8: 00~9: 00等待), 再將最近訪問時間歸屬在上述時間范圍的用戶確定為在線用戶,并對其數量進 行統計
在實際應用中,為了提高系統性能,數據庫22中保存的數據具有一定的 有效期,Web服務器20需要定期清除數據庫22中的過期數據,例如,Web服 務器20定期將數據庫22中保存時間超過一周的用戶訪問記錄刪除。 下面以網絡即時通信服務中的文字直播系統為例進行進一步說明。 本實施例中,用戶登錄標識設置為用戶ID或/和直播室ID,當用戶通過用 戶終端21第一次訪問某一直播室時,Web服務器20根據用戶ID或/和直播室 ID在數據庫22中創建用戶訪問記錄,并將用戶此次的拜訪時間作為最近訪問 時間進行記錄;而用戶終端21通過Ajax技術每隔5分鐘向Web服務器20發 送包含用戶ID或/和直播室ID的http請求,通知Web服務器20用戶仍在線, Web服務器20根據用戶ID或/和直播室ID更新數據庫22中對應的用戶訪問 記錄,將該用戶的最近訪問時間更新為系統當前時間;Web服務器20每隔20 分鐘統計一次在線用戶的數目,即根據數據庫22保存的用戶在線記錄分別統 計各直播室內最近訪問時間在5分鐘內的用戶的數量,并將其分別作為各直播 室的在線用戶數量進行記錄,同時刪除所有最近訪問時間在5分鐘前的用戶的 用戶訪問記錄。
綜上所述,本發明實施例中,用戶終端21定期向Web服務器20發送通知 消息,以通知Web服務器20用戶當前的在線狀態,而Web服務器20每次接
收到所述通知消息時,將數據庫22內保存的用戶在線記錄中該用戶的最近訪 問時間更新為當前的系統時間,以及定期根據各用戶的用戶在線記錄分別確定 其相應的最近問時間,將最近訪問時間歸屬至設定時間范圍的用戶確定為在線 用戶,并統計所述在線用戶的數量。這樣,由用戶終端21定期發送通知消息,
使統計用戶在線時間對Web服務器20性能消耗的影響降到最低,從而保證了 良好的用戶體驗;同時,本發明實施例中,將用戶訪問記錄保存在了數據庫22 內,這種方法適用于多臺Web服務器,因此增強了系統的可擴展性,當用戶數 量過多時,可以按照需要增加相應數目的Web服務器20而無需更改在線用戶 數量的統計方式,這有利于網絡即時通信服務的進一步發展。
不脫離本發明的精神和范圍。這樣,倘若本發明實施例中的這些修改和變型屬 于本發明權利要求及其等同技術的范圍之內,則本發明中的實施例也意圖包含 這些改動和變型在內。
權利要求
1、一種統計在線用戶數量的方法,其特征在于,包括在用戶訪問過程中,用戶終端定期向所述Web服務器發送攜帶用戶身份標識的通知消息,Web服務器每次接收到所述通知消息時,將數據庫內保存的用戶在線記錄中該用戶的最近訪問時間更新為當前的系統時間;所述Web服務器定期根據各用戶的用戶在線記錄分別確定其相應的最近訪問時間,將最近訪問時間歸屬至設定時間范圍的用戶確定為在線用戶,并統計所述在線用戶的數量。
2、 如權利要求1所述的方法,其特征在于,在用戶初次訪問時,Web服 務器根據該用戶登錄時使用的用戶身份標識在數據庫中創建對應的用戶在線 記錄,并將用戶初次訪問的時間作為用戶的最近訪問時間保存在該用戶在線記 錄中。
3、 如權利要求2所述的方法,其特征在于,所述用戶身份標識包含用戶 登錄標識或/和業務標識。
4、 如權利要求1所述的方法,其特征在于,在用戶初次訪問時,Web服 務器為該用戶分配用戶身份標識,并根據該用戶身份標識在數據庫中創建對應 的用戶在線記錄,并將用戶初次訪問的時間作為用戶的最近訪問時間保存在該 用戶在線記錄中,以及將為用戶分配的用戶身份標識返回至用戶終端。
5、 如權利要求l-4任一項所述的方法,其特征在于,所述用戶終端采用 Ajax技術定期向Web服務器發送所述通知消息。
6、 一種Web服務器,其特征在于,包括 存儲單元,用于保存用戶在線記錄;通信單元,用于在用戶訪問過程中,接收用戶終端定期發送的攜帶用戶身 份標識的通知消息,并在每次接收到所述通知消息時,將數據庫內保存的用戶 在線記錄中該用戶的最近訪問時間更新為當前的系統時間;處理單元,用于定期根據各用戶的用戶在線記錄分別確定其相應的最近問時間,并將最近訪問時間歸屬至設定時間范圍的用戶確定為在線用戶; 統計單元,用于統計所述在線用戶的數量。
7、 如權利要求6所述的Web服務器,其特征在于,在用戶初次訪問時, 所述處理單元根據該用戶登錄時使用的用戶身份標識,在存儲單元中創建對應 的用戶在線記錄,并將用戶初次訪問的時間作為用戶的最近訪問時間保存在該 用戶在線記錄中。
8、 如權利要求6所述的Web服務器,其特征在于,在用戶初次訪問時, 所述處理單元為該用戶分配用戶身份標識,并根據該用戶身份標識在存儲單元 中創建對應的用戶在線記錄,以及將用戶初次訪問的時間作為用戶的最近訪問 時間保存在該用戶在線記錄中,并將為用戶分配的用戶身份標識返回至用戶終端。
9、 一種通信系統,其特征在于,包括 數據庫,用于存儲用戶在線記錄;用戶終端,用于在用戶訪問過程中,定期向Web服務器發送攜帶用戶身份 標識的通知消息;Web服務器,用于在每次接收到所述通知消息時,將數據庫內保存的用戶 在線記錄中該用戶的最近訪問時間更新為當前的系統時間,并定期根據各用戶 的用戶在線記錄分別確定其相應的最近問時間,以及將最近訪問時間歸屬至設 定時間范圍的用戶確定為在線用戶,并統計所述在線用戶的數量。
10、 如權利要求9所述的通信系統,其特征在于,在用戶初次訪問時, Web服務器根據該用戶登錄時使用的用戶身份標識在數據庫中創建對應的用 戶在線記錄,并將用戶初次訪問的時間作為用戶的最近訪問時間保存在該用戶 在線記錄中。
11、 如權利要求9所述的通信系統,其特征在于,在在用戶初次訪問時, Web服務器為該用戶分配用戶身份標識,并根據該用戶身份標識在數據庫中創 建對應的用戶在線記錄,并將用戶初次訪問的時間作為用戶的最近訪問時間保 存在該用戶在線記錄中,以及將為用戶分配的用戶身份標識返回至用戶終端。
12、 如權利要求9、 10或11所述的通信系統,其特征在于,所述用戶終 端采用Ajax技術定期向Web服務器發送所述通知消息。
13、 如權利要求9、 10或11所述的通信系統,其特征在于,至少包括兩 臺所述Web服務器。
全文摘要
本發明公開了一種統計在線用戶數量的方法,該方法為用戶終端定期向Web服務器發送通知消息,以通知Web服務器用戶當前的在線狀態,而Web服務器每次接收到所述通知消息時,將數據庫內保存的用戶在線記錄中該用戶的最近訪問時間更新為當前的系統時間,以及定期根據各用戶的用戶在線記錄分別確定其相應的最近訪問時間,將最近訪問時間歸屬至設定時間范圍的用戶確定為在線用戶,并統計所述在線用戶的數量。這樣,便在一定程度上使Web服務器避免了因為維護長連接而造成的性能消耗,從而保證了良好的用戶體驗;同時,增強了系統的可擴展性,有利于網絡即時通信服務的進一步發展。本發明同時公開了一種Web服務器和一種通信系統。
文檔編號H04L12/26GK101394307SQ200810176419
公開日2009年3月25日 申請日期2008年11月7日 優先權日2008年11月7日
發明者波 陳 申請人:阿里巴巴集團控股有限公司