国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種基于Web的即時消息的實現(xiàn)方法

      文檔序號:7699366閱讀:160來源:國知局
      專利名稱:一種基于Web的即時消息的實現(xiàn)方法
      技術(shù)領(lǐng)域
      本發(fā)明屬于計算機網(wǎng)絡(luò)通信技術(shù)領(lǐng)域,尤其涉及一種基于Web的即時消 息的實現(xiàn)方法。
      背景技術(shù)
      目前,在基于Web的即時消息系統(tǒng)中,采用的通信方式主要有以下兩種
      1) 客戶端輪詢訪問的方式;
      2) 客戶端安裝控件,模擬C/S結(jié)構(gòu)的方式。
      以上兩種方式中,第一種方式由于客戶端的輪詢訪問,請求比較頻繁, 對服務(wù)器會產(chǎn)生較大的壓力。這種方式對于實時性要求不是很高的系統(tǒng)是合 適的,但也存在一個最大的隱患,即如果處理不好,很可能影響到系統(tǒng)的性 能,甚至使整個系統(tǒng)癱瘓。只有對輪詢訪問的具體方式做一些優(yōu)化處理,才 能最大限度的減輕服務(wù)器的壓力。第二種方式采用模擬C/S結(jié)構(gòu)的方式,不 需要進(jìn)行輪詢訪問,但需要客戶端安裝控件,具有-定的局限性。

      發(fā)明內(nèi)容
      本發(fā)明的目的在于,提供一種基于Web的即時消息的實現(xiàn)方法,解決當(dāng) 前采用的基于Web的即時消息系統(tǒng)性能較低,以及客戶端安裝控件使用不方便 的問題。
      本發(fā)明的技術(shù)方案是, 一種基于Web的即時消息的實現(xiàn)方法,其特征是 所述方法為用戶通過客戶端登錄系統(tǒng)后,客戶端啟動輪詢,發(fā)送HTTP請求訪問服務(wù)器端;
      當(dāng)所述客戶端發(fā)送的HTTP請求發(fā)送到服務(wù)器端后,在服務(wù)器端未處理完成該HTTP請求時,所述客戶端不會再發(fā)送其它HTTP請求;
      如果服務(wù)器端有其它HTTP請求還未處理完,則所述客戶端發(fā)送的HTTP請求被忽略,直接返回所述客戶端;
      如果服務(wù)器端收到的所述客戶端發(fā)送的HTTP請求為接收即時消息請求,并且所述客戶端是第一次訪問服務(wù)器端,則服務(wù)器端在內(nèi)存中初始化所述客戶端的即時消息信息,并從服務(wù)器端的數(shù)據(jù)庫中取出所述客戶端的所有未接收的即時消息發(fā)送給所述客戶端;
      如果服務(wù)器端收到的所述客戶端發(fā)送的HTTP請求為接收即時消息請求,并且所述客戶端不是第一次訪問服務(wù)器端,則服務(wù)器端從內(nèi)存中讀取所述客戶端的即時消息信息,若有未接收的即時消息,則從服務(wù)器端的數(shù)據(jù)庫中取出未接收的即時消息發(fā)送給所述客戶端,同時更新內(nèi)存中與所述客戶端相關(guān)的即時消息信息;若沒有未接收的即時消息,則直接返回所述客戶端;
      如果服務(wù)器端收到客戶端發(fā)送的HTTP請求是發(fā)送即時消息請求,并且接收用戶在線,則服務(wù)器端會更新內(nèi)存中與接收用戶相關(guān)的即時消息信息,同時在服務(wù)器端的數(shù)據(jù)庫中添加與接收用戶相關(guān)的即時消息的記錄;
      如果服務(wù)器端收到客戶端發(fā)送的HTTP請求是發(fā)送即時消息請求,并且接收用戶不在線,則只在服務(wù)器端的數(shù)據(jù)庫中添加與接收用戶相關(guān)的即時消息的記錄
      用戶退出系統(tǒng)時,服務(wù)器端的內(nèi)存中會自動清除與所述客戶端相關(guān)的即時
      消息f曰息。
      所述服務(wù)器端包括應(yīng)用服務(wù)器、即時消息服務(wù)器和數(shù)據(jù)庫,并采用集群環(huán)境。所述即時消息信息包括用戶信息、用戶使用的客戶端信息、客戶端是否有未接收的即時消息標(biāo)志和用戶未接收的即時消息列表。
      所述服務(wù)器端的數(shù)據(jù)庫,存儲即時消息,即時消息包括即時消息ID、發(fā)送用戶工號、接收用戶工號、發(fā)送時間、接收時間和消息內(nèi)容。
      所述即時消息的接收功能和發(fā)送功能通過權(quán)限設(shè)置開通或不開通。
      所述即時消息的接收用戶通過用戶組配置進(jìn)行設(shè)定。
      所述用戶以同一身份通過1個以上的客戶端登錄系統(tǒng)時,若有其他用戶給該用戶發(fā)送即時消息,則與該用戶相關(guān)的所有客戶端窗口均能收到即時消息。
      本發(fā)明提供的一種基于Web的即時消息的實現(xiàn)方法,無需在客戶端安裝
      控件,采用客戶端輪詢訪問服務(wù)器端的方式,在客戶端和服務(wù)器端均做了很大的性能優(yōu)化,從而提高了即時消息處理的能力。


      圖1是集群環(huán)境下基于Web的即時消息系統(tǒng)的總體結(jié)構(gòu)圖。
      圖2是服務(wù)器端內(nèi)存創(chuàng)建的即時消息信息結(jié)構(gòu)圖。
      圖3是服務(wù)器端的數(shù)據(jù)庫中存儲的即時消息結(jié)構(gòu)圖。
      圖4是描述接收即時消息輪詢的服務(wù)器端處理過程的流程圖。
      圖5是描述發(fā)送即時消息輪詢的服務(wù)器端處理過程的流程圖。
      具體實施例方式
      下面結(jié)合附圖,對優(yōu)選實施例作詳細(xì)說明。應(yīng)該強調(diào)的是,下述說明僅僅是示例性的,而不是為了限制本發(fā)明的范圍及其應(yīng)用。
      圖1是集群環(huán)境下基于Web的即時消息系統(tǒng)的總體結(jié)構(gòu)圖。圖1中,用戶通過客戶端登錄系統(tǒng)后,客戶端啟動輪詢,發(fā)送HTTP請求訪問服務(wù)器端。本發(fā)明對客戶端和服務(wù)器端均做了很大的性能優(yōu)化,當(dāng)客戶端發(fā)送的HTTP請求發(fā)送到服務(wù)器端后,在服務(wù)器端未處理完成該HTTP請求時,該客戶端不會再發(fā)送新的HTTP請求。另外,如果服務(wù)器端有其它HTTP請求還未處理完,則客戶端發(fā)送的HTTP請求被忽略,直接返回客戶端。
      客戶端發(fā)送的HTTP請求包括接收即時消息請求和發(fā)送即時消息請求。如果服務(wù)器端收到的客戶端發(fā)送的HTTP請求為接收即時消息請求,并且此客戶端是第一次訪問服務(wù)器端,則服務(wù)器端在內(nèi)存中初始化該客戶端的即時消息信息,并從服務(wù)器端的數(shù)據(jù)庫中取出所述客戶端的所有未接收的即時消息發(fā)送給客戶端。
      圖2是服務(wù)器端內(nèi)存初始化的即時消息信息結(jié)構(gòu)圖。圖2中,服務(wù)器端內(nèi)存中的即時消息信息包括用戶信息、用戶使用的客戶端信息、客戶端是否有未接收的即時消息標(biāo)志和用戶未接收的即時消息列表。用戶信息可以使用戶工號、用戶代碼等唯一標(biāo)識用戶身份的信息;用戶使用的客戶端信息,可以是客戶端的名稱、客戶端的IP地址、客戶端的MAC地址等能夠唯一標(biāo)識客戶端的信息;客戶端是否有未接收的即時消息標(biāo)志,可以使用"1"和"0"來標(biāo)識;用戶未接收的即時消息列表中,只存儲該用戶未接收的即時消息ID。初始化相應(yīng)客戶端的即時消息信息后,從服務(wù)器端的數(shù)據(jù)庫取出該客戶端所有未接收的即時消息發(fā)送給客戶端。
      圖3是服務(wù)器端的數(shù)據(jù)庫中存儲的即時消息結(jié)構(gòu)圖。圖3中,服務(wù)器端的數(shù)據(jù)庫中存儲的即時消息包括即時消息ID、發(fā)送用戶工號、接收用戶工號、發(fā)送時間、接收時間和消息內(nèi)容。其中,在客戶端第一次訪問服務(wù)器是,服務(wù)器端根據(jù)數(shù)據(jù)庫的接收時間字段,判斷是否有未被接收的即時消息,當(dāng)接收時間字段為空時,說明有未被接收的即時消息,此時將客戶端未接收的即時消息發(fā)送給客戶端,同時將此時的時間寫入數(shù)據(jù)庫的接收時間字段中。
      如果服務(wù)器端收到的客戶端發(fā)送的HTTP請求為接收即時消息請求,并且所述客戶端不是第一次訪問服務(wù)器端,則服務(wù)器端從內(nèi)存中讀取所述客戶端的即時消息信息,若有未接收的即時消息,則從服務(wù)器端的數(shù)據(jù)庫中取出未接收的即時消息發(fā)送給所述客戶端,同時更新內(nèi)存中與所述客戶端相關(guān)的即時消息信息,更新的內(nèi)容包括清空即時消息的用戶未接收的即時消息列表列和將客戶端是否有未接收的即時消息標(biāo)志修改為"沒有未接收的即時消息"。若沒有未接收的即時消息,則直接返回所述客戶端。
      如果服務(wù)器端收到客戶端發(fā)送的HTTP請求是發(fā)送即時消息請求,并且接收用戶在線,則服務(wù)器端會更新內(nèi)存中與接收用戶相關(guān)的即時消息信息,同時在服務(wù)器端的數(shù)據(jù)庫中添加與接收用戶相關(guān)的即時消息的記錄。
      如果服務(wù)器端收到客戶端發(fā)送的HTTP請求是發(fā)送即時消息請求,并且接收用戶不在線,則只在服務(wù)器端的數(shù)據(jù)庫中添加與接收用戶相關(guān)的即時消息的記錄。
      當(dāng)用戶退出系統(tǒng)時,服務(wù)器端的內(nèi)存中會自動清除與客戶端相關(guān)的即時消
      息"f曰息。
      另外,即時消息的接收功能和發(fā)送功能通過權(quán)限設(shè)置開通或不開通。即時消息接收功能可通過配置文件配置,開通后,所有在線用戶均可接收即時消息,并可回復(fù)。即時消息發(fā)送功能可配置,開通后,用戶可向其他用戶發(fā)送即時消息。通過配置即時消息用戶分組,用戶可以決定向哪些用戶(或用戶組)發(fā)送即時消息,配置完后,用戶即可向組內(nèi)的所有用戶發(fā)送即時消息。
      當(dāng)用戶以同一身份通過1個以上的客戶端登錄系統(tǒng)時,若有其他用戶給該用戶發(fā)送即時消息,則與該用戶相關(guān)的所有客戶端窗口均能收到即時消息。
      圖4是描述接收即時消息輪詢的服務(wù)器端處理過程的流程圖。圖4中,
      用戶接收即時消息的過程是
      步驟401:服務(wù)器端接收到登錄用戶從客戶端發(fā)送的HTTP請求。步驟402:服務(wù)器端判斷當(dāng)前是否正在處理其它的請求,也即是否有其它的客戶端正在接收即時消息。如果服務(wù)器端當(dāng)前沒有處理其它接收消息的請求,則執(zhí)行步驟403;否則,執(zhí)行步驟409。
      步驟403:訪問內(nèi)存中與該客戶端相關(guān)的即時消息信息。
      步驟404:判斷內(nèi)存中是否有與此客戶端相關(guān)的即時消息信息。如果內(nèi)
      存中沒有與此用戶相關(guān)即時消息信息,則執(zhí)行步驟405;否則,執(zhí)行步驟406。
      步驟405:此時說明客戶端是第一次訪問服務(wù)器端,在服務(wù)器端內(nèi)存中
      新建此客戶端相關(guān)的即時消息信息,同時從服務(wù)器端的數(shù)據(jù)庫獲取此客戶端 相關(guān)的未接收的即時消息,并發(fā)送給客戶端,之后將接收時間寫入數(shù)據(jù)庫接
      收時間字段,而后執(zhí)行步驟409。
      步驟406:讀取服務(wù)器端內(nèi)存中與此客戶端相關(guān)的即時消息信息。
      步驟407:根據(jù)此客戶端的即時消息標(biāo)志的內(nèi)容,判斷此客戶端是否有 未接收的即時消息。如果此客戶端有未接收的即時消息,則執(zhí)行步驟408; 否則,執(zhí)行步驟409。
      步驟408:從數(shù)據(jù)庫獲取此客戶端未接收的即時消息,而后更新內(nèi)存中 此客戶端相關(guān)的即時消息信息,并將接收時間寫入數(shù)據(jù)庫接收時間字段。
      步驟409:將響應(yīng)信息返回給客戶端。
      圖5是描述發(fā)送即時消息輪詢的服務(wù)器端處理過程的流程圖。圖5中,
      客戶端發(fā)送即時消息的過程是
      步驟501:客戶端發(fā)送的HTTP請求是發(fā)送即時消息請求,服務(wù)器端接 收該請求。
      步驟502:判斷服務(wù)器端是否有其他的請求正在處理,如果有其他請求
      正在處理,則忽略該請求,執(zhí)行步驟506;否則,執(zhí)行步驟503。
      步驟503:服務(wù)器端處理該請求,判斷接收即時消息的用戶是否在線,
      如果在線,則執(zhí)行步驟504;否則,執(zhí)行步驟505。
      步驟504:服務(wù)器端會更新內(nèi)存中與接收用戶相關(guān)的即時消息信息,即將
      即時消息信息的客戶端是否有未接收的即時消息標(biāo)志改寫為"有未接收的即時消息",另外,在即時消息信息的用戶未接收的即時消息列表中添加未接受的
      即時消息ID。
      同時,還要在服務(wù)器端的數(shù)據(jù)庫中添加與接收用戶相關(guān)的即時消息的記
      錄。即在服務(wù)器端的數(shù)據(jù)庫中添加一條記錄,包括即時消息ID、發(fā)送用戶工號、 接收用戶工號、發(fā)送時間、接收時間、消息內(nèi)容。之后執(zhí)行步驟506。
      步驟505:只在服務(wù)器端會的數(shù)據(jù)庫中添加與接收用戶相關(guān)的即時消息的 記錄。即在服務(wù)器端的數(shù)據(jù)庫中添加一條記錄,包括即時消息ID、發(fā)送用戶工 號、接收用戶工號、發(fā)送時間、接收時間、消息內(nèi)容。
      步驟506:返回客戶端。
      本發(fā)明基于Web實現(xiàn),用戶只需一個瀏覽器(如IE)即可使用即時消 息功能,不需要安裝其它軟件。多個客戶端(瀏覽器窗口)可以以同一用戶 身份在不同機器上同時登錄系統(tǒng),并接收和發(fā)送即時消息。同時,該實現(xiàn)支 持應(yīng)用服務(wù)器集群環(huán)境,這樣就使得從硬件方面提高系統(tǒng)的性能成為可能, 保證了在硬件上的可擴展性。另外,即時消息功能的開放和關(guān)閉、用戶接收 和發(fā)送即時消息的權(quán)限以及用戶的分組均可配置,給用戶提供了極大的靈活 性。本發(fā)明使用客戶端輪詢訪問服務(wù)器端的方式,在服務(wù)器端和客戶端均做 了很大的性能優(yōu)化,用戶的即時消息相關(guān)信息均存儲在服務(wù)器的內(nèi)存中,客 戶端只在必要的時候才去訪問數(shù)據(jù)庫,獲取即時消息。
      以上所述,僅為本發(fā)明較佳的具體實施方式
      ,但本發(fā)明的保護范圍并不 局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可 輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明 的保護范圍應(yīng)該以權(quán)利要求的保護范圍為準(zhǔn)。
      權(quán)利要求
      1. 一種基于Web的即時消息的實現(xiàn)方法,其特征是所述方法為用戶通過客戶端登錄系統(tǒng)后,客戶端啟動輪詢,發(fā)送HTTP請求訪問服務(wù)器端;當(dāng)所述客戶端發(fā)送的HTTP請求發(fā)送到服務(wù)器端后,在服務(wù)器端未處理完成該HTTP請求時,所述客戶端不會再發(fā)送其它HTTP請求;如果服務(wù)器端有其它HTTP請求還未處理完,則所述客戶端發(fā)送的HTTP請求被忽略,直接返回所述客戶端;如果服務(wù)器端收到的所述客戶端發(fā)送的HTTP請求為接收即時消息請求,并且所述客戶端是第一次訪問服務(wù)器端,則服務(wù)器端在內(nèi)存中初始化所述客戶端的即時消息信息,并從服務(wù)器端的數(shù)據(jù)庫中取出所述客戶端的所有未接收的即時消息發(fā)送給所述客戶端;如果服務(wù)器端收到的所述客戶端發(fā)送的HTTP請求為接收即時消息請求,并且所述客戶端不是第一次訪問服務(wù)器端,則服務(wù)器端從內(nèi)存中讀取所述客戶端的即時消息信息,若有未接收的即時消息,則從服務(wù)器端的數(shù)據(jù)庫中取出未接收的即時消息發(fā)送給所述客戶端,同時更新內(nèi)存中與所述客戶端相關(guān)的即時消息信息;若沒有未接收的即時消息,則直接返回所述客戶端;如果服務(wù)器端收到客戶端發(fā)送的HTTP請求是發(fā)送即時消息請求,并且接收用戶在線,則服務(wù)器端會更新內(nèi)存中與接收用戶相關(guān)的即時消息信息,同時在服務(wù)器端的數(shù)據(jù)庫中添加與接收用戶相關(guān)的即時消息的記錄;如果服務(wù)器端收到客戶端發(fā)送的HTTP請求是發(fā)送即時消息請求,并且接收用戶不在線,則只在服務(wù)器端的數(shù)據(jù)庫中添加與接收用戶相關(guān)的即時消息的記錄;用戶退出系統(tǒng)時,服務(wù)器端的內(nèi)存中會自動清除與所述客戶端相關(guān)的即時消息信息。
      2. 根據(jù)權(quán)利要求1所述的一種基于Web的即時消息的實現(xiàn)方法,其特征是 所述服務(wù)器端包括應(yīng)用服務(wù)器、即時消息服務(wù)器和數(shù)據(jù)庫,并采用集群環(huán)境。
      3. 根據(jù)權(quán)利要求1所述的一種基于Web的即時消息的實現(xiàn)方法,其特征是 所述即時消息信息包括用戶信息、用戶使用的客戶端信息、客戶端是否有未接 收的即時消息標(biāo)志和用戶未接收的即時消息列表。
      4. 根據(jù)權(quán)利要求1所述的一種基于Web的即時消息的實現(xiàn)方法,其特征是 所述服務(wù)器端的數(shù)據(jù)庫,存儲即時消息,即時消息包括即時消息ID、發(fā)送用戶工 號、接收用戶工號、發(fā)送時間、接收時間和消息內(nèi)容。
      5. 根據(jù)權(quán)利要求1所述的一種基于Web的即時消息的實現(xiàn)方法,其特征是 所述即時消息的接收功能和發(fā)送功能通過權(quán)限設(shè)置開通或不開通。
      6. 根據(jù)權(quán)利要求1所述的一種基于Web的即時消息的實現(xiàn)方法,其特征是 所述即時消息的接收用戶通過用戶組配置進(jìn)行設(shè)定。
      7. 根據(jù)權(quán)利要求1所述的一種基于Web的即時消息的實現(xiàn)方法,其特征是 所述用戶以同一身份通過1個以上的客戶端登錄系統(tǒng)時,若有其他用戶給該用戶 發(fā)送即時消息,則與該用戶相關(guān)的所有客戶端窗口均能收到即時消息。
      全文摘要
      本發(fā)明公開了計算機網(wǎng)絡(luò)通信技術(shù)領(lǐng)域中的一種基于Web的即時消息的實現(xiàn)方法。技術(shù)方案是,用戶通過客戶端采用輪詢方式向服務(wù)器端發(fā)送請求;如果客戶端是第一次訪問服務(wù)器端,則服務(wù)器端在內(nèi)存中初始化客戶端的即時消息信息,否則服務(wù)器端從內(nèi)存中讀取客戶端的即時消息信息,若有未接收的即時消息,則從服務(wù)器端的數(shù)據(jù)庫中取出未接收的即時消息發(fā)送給客戶端,同時更新內(nèi)存中與客戶端相關(guān)的即時消息信息;若沒有未接收的即時消息,則直接返回客戶端;用戶退出系統(tǒng)時,服務(wù)器端的內(nèi)存會自動清除與客戶端相關(guān)的即時消息信息。本發(fā)明無需在客戶端安裝控件,采用客戶端輪詢訪問方式,提高了即時消息處理的能力。
      文檔編號H04L29/08GK101510896SQ200910080659
      公開日2009年8月19日 申請日期2009年3月23日 優(yōu)先權(quán)日2009年3月23日
      發(fā)明者輝 孫, 高文淵 申請人:北京佳訊飛鴻電氣股份有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1