專利名稱:一種處理消息的方法及裝置的制作方法
技術領域:
本發(fā)明涉及即時通訊技術領域,具體涉及一種處理消息的方法及裝置。
背景技術:
隨著互聯(lián)網(wǎng)的飛速發(fā)展,越來越多的人選擇在網(wǎng)上與同事、朋友進行交流,而使用的最多的就是即時通訊(IM,Instant Messaging)軟件,隨著網(wǎng)上交流的增多以及即時通訊運營商提供的服務增多,用戶的即時通訊帳戶中會有很多的交談對象,而用戶在使用即時通訊軟件時,想交談的對象可能不在線,此時雖然不能直接與想交談的對象進行交流,但是如果有什么事情還是可以使用離線消息告訴不在線的想交談的對象。其中離線消息是指當想交談的對象不在線的時候發(fā)送給對方的消息,這些消息將會在服務器上暫存起來,當該對象重新上線后由服務器推送給的消息。
由于用戶的即時通訊帳戶中有多個交談對象,而且許多即時通訊運營商為了滿足用戶的需要,提供了多人聊天的方式,這樣在用戶登錄即時通訊帳戶時,可能會在短時間內(nèi)收到大量的離線消息并對其進行處理,當處理數(shù)據(jù)的時間太長,就會影響用戶使用軟件的流暢感。此處流暢感是用戶感的很重要的一個方面,用戶感是指一個軟件給用戶的使用感覺,其中影響流暢感的最主要因素是程序對用戶鼠標鍵盤輸入的響應速度,當程序對用戶的鼠標鍵盤的響應時間超過一定的時間時,用戶就會有明顯“卡”的感覺,經(jīng)測試,程序對用戶的鼠標鍵盤的響應時間最好不要超過200ms。一般來說,有兩種解決數(shù)據(jù)處理時間太長的方法,一種是優(yōu)化數(shù)據(jù)處理邏輯,減少數(shù)據(jù)處理占用的時間;另一種是在大的數(shù)據(jù)時間段中插入一些響應用戶輸入的邏輯,這樣雖然沒有減少程序的總運行時間,但是用戶使用起來會流暢很多。
根據(jù)上面提到的第二種方法,現(xiàn)有的一種解決用戶登錄即時通訊帳戶收到大量的離線消息而影響用戶的流暢感的方法是這樣的即時通訊服務器每隔一段時間發(fā)送一條離線消息給即時通訊客戶端。
使用這種方法雖然可以保證在有大量離線消息時不影響用戶的流暢感,但是加大了服務器的負擔,使服務器的處理邏輯復雜,從而需要更多的服務器支出,增加了即時通訊運營商的運營成本。
發(fā)明內(nèi)容
本發(fā)明要解決的技術問題是提供一種處理消息的方法及裝置,使用本發(fā)明可以在不增加即時通訊運營商運營成本的情況下,在有大量的離線消息時不影響用戶的流暢感。
為解決上述技術問題,本發(fā)明的目的是通過以下技術方案實現(xiàn)的一種處理消息的方法,包括接收消息后,為所述消息設置優(yōu)先級,將所述消息放入消息隊列;選取所述消息隊列中處于預置優(yōu)先級的消息進行處理。
優(yōu)選的,定期提高所述消息隊列中消息的優(yōu)先級。
優(yōu)選的,接收消息后該方法進一步包括識別所述消息的消息類型,根據(jù)所述消息的消息類型按預置的規(guī)則為所述消息設置優(yōu)先級,進入將所述消息放入消息隊列的消息隊列的步驟。
優(yōu)選的,接收消息后該方法進一步包括判斷接收消息的時刻是否已經(jīng)超出預置的期限,如果否,進入識別所述消息的消息類型的步驟;如果是,對所述消息直接進行處理。
優(yōu)選的,如果用戶登錄的時間已經(jīng)超過所述預置的期限,該方法還包括取出所述消息隊列中所有的消息進行處理。
優(yōu)選的,如果用戶在所述預置的期限內(nèi)退出登錄,該方法還包括判斷所述消息隊列中是否還有消息未處理,如果是,取出所述消息隊列中所有未處理的消息進行處理。
優(yōu)選的,如果有多條處于預置優(yōu)先級的消息,選取所述多條處于預置優(yōu)先級的消息中最先進入所述消息隊列的消息進行處理。
優(yōu)選的,如果用戶選擇了一個交流對象,該方法還包括選取所述消息隊列中所述交流對象的所有消息進行處理。
一種處理消息的裝置,包括消息接收單元,用于接收服務器發(fā)送的消息;優(yōu)先級設置單元,用于為所述消息設置優(yōu)先級;消息隊列維護單元,用于將設置了優(yōu)先級的所述消息放入消息隊列;消息處理單元,用于選取所述消息隊列中處于預置優(yōu)先級的消息進行處理。
優(yōu)選的,該裝置還包括定時單元,用于定時觸發(fā)所述消息隊列維護單元提高所述消息隊列中消息的優(yōu)先級。
優(yōu)選的,該裝置還包括消息類型識別單元,用于識別所述消息接收單元接收的消息的消息類型;所述優(yōu)先級設置單元根據(jù)所述消息的消息類型按預置的規(guī)則為所述消息設置優(yōu)先級。
優(yōu)選的,該裝置還包括期限判斷單元,用于判斷所述消息接收單元接收消息的時刻是否超過預置的期限,如果否,觸發(fā)所述消息類型識別單元對所述消息的類型進行識別;如果是,觸發(fā)所述消息處理單元直接對所述消息進行處理。
優(yōu)選的,如果用戶在所述預置的期限內(nèi)退出登錄,所述期限判斷單元還用于觸發(fā)所述消息處理單元處理所述消息隊列中未處理的消息。
優(yōu)選的,如果用戶選擇了一個交流對象,所述消息處理單元選取所述消息隊列中所述交流對象的所有消息進行處理。
以上技術方案可以看出,由于本發(fā)明對接收的離線消息設置優(yōu)先級,使優(yōu)先級高的消息先被處理,不用短時間內(nèi)處理大量的離線消息,從而使用戶在登錄即時通訊軟件后,不用等待很久就可以使用即時通訊軟件,從而提高用戶的滿意度;進一步,本發(fā)明的一個實施例對不同消息類型的消息設置不同的優(yōu)先級,從而可以使用戶可以最快時間的看到最重要的消息,滿足用戶的需要;進一步,本發(fā)明設置了一個期限,只有處于期限內(nèi)的消息才放入消息隊列進行處理,而對超過期限的消息直接處理,從而不會對用戶的即時信息交流造成影響;進一步的,本發(fā)明主要應用于即時通訊客戶端,從而不會增加即時通訊服務器的處理負荷,即時通訊服務器還是采用原來的處理邏輯進行處理,不需要增加即時通訊運營商的運營成本。
圖1為本發(fā)明方法第一實施例的具體流程圖;圖2為本發(fā)明方法第二實施例的具體流程圖;圖3為本發(fā)明方法第三實施例的具體流程圖;圖4為本發(fā)明裝置第一實施例的結構圖;圖5為本發(fā)明裝置第二實施例的結構圖;圖6為本發(fā)明裝置第三實施例的結構圖。
具體實施例方式
本發(fā)明為一種處理消息的方法及裝置,為使本發(fā)明的目的、技術方案、及優(yōu)點更加清楚明白,以下參照附圖并舉實施例,對本發(fā)明進一步詳細說明。
參見圖1,本發(fā)明方法的一個實施例主要包括步驟101、接收消息;在用戶登錄即時通訊賬號時,即時通訊服務器會將服務器上保存的需要發(fā)送給所述即時通訊賬號的所有離線消息發(fā)送給用戶登錄使用的即時通訊客戶端,即時通訊客戶端就接收這些消息;步驟102、為所述消息設置優(yōu)先級;設置優(yōu)先級有很多種方案,例如可以根據(jù)消息類型的不同為接收的每個消息設置優(yōu)先級,也可以根據(jù)接收數(shù)據(jù)的先后順序為接收的消息設置優(yōu)先級;步驟103、將所述設置了優(yōu)先級的消息放入消息隊列;用戶登錄即時通訊賬號后,即時通訊客戶端會維護一個消息隊列;步驟104、選取所述消息隊列中處于預置優(yōu)先級的消息進行處理;為了不影響用戶的流暢感,定期或不定期的從消息隊列中選取處于預置優(yōu)先級的消息進行處理,所述預置優(yōu)先級可以只是一個優(yōu)先級,也可以是多個優(yōu)先級;處于預置優(yōu)先級的消息可以是當前隊列中優(yōu)先級最高的消息,此時消息可能不是處于最高優(yōu)先級,也可以是只選取處于最高優(yōu)先級的消息;如果出現(xiàn)有多條消息具有相同的優(yōu)先級、或者預置的是多個優(yōu)先級,此時可以從多條具有相同優(yōu)先級或不同優(yōu)先級的消息中隨機選擇一個消息進行處理,也可以選擇最先進入消息隊列的消息進行處理,還可以選擇初始優(yōu)先級最高的消息進行處理,本發(fā)明并不對如何選擇消息進行處理的方式進行限定。
優(yōu)先級可以有多種表示方式,例如可以直接為高優(yōu)先級的消息設置高的數(shù)值,在選取消息的時候就選取數(shù)值最大的消息進行處理,進一步,為了使先接收的消息能夠先處理,還可以定期的提高消息隊列中消息的優(yōu)先級,這樣就可以保證哪怕是最低優(yōu)先級的消息進入消息隊列一段時間后也能夠處理;還有一種可行的方案就是,為不同的消息設置不同的等待時間,優(yōu)先級越高的消息的等待時間越小,當消息的等待時間為0時就對其進行處理;本說明書主要采用第二種方式進行描述,但是本發(fā)明并不對優(yōu)先級的具體表示方式進行限定,只要能夠促使消息在不同的時間進行處理都應該在本發(fā)明的保護范圍內(nèi)。
從上可知,為接收的消息設置優(yōu)先級,然后再定期或不定期的選取優(yōu)先級高的消息進行處理,從而使即時通訊客戶端不用短時間內(nèi)處理所有的離線消息,從而不會影響用戶的流暢感;本方法并不只應用于離線消息,任何時刻收到大量的消息都可以采用本方法進行處理。
如圖2所示,本發(fā)明方法的另一實施例包括步驟201、接收消息;
步驟202、識別所述消息的消息類型;在即時通訊系統(tǒng)中,有多種消息,有的是系統(tǒng)的廣告或通知消息,有用戶的普通交流對象的消息,還有的是用戶參與的多人聊天的消息;步驟203、根據(jù)所述消息的消息類型根據(jù)預置的規(guī)則為所述消息設置優(yōu)先級;即時通訊系統(tǒng)可以提供一個默認的參考標準,例如系統(tǒng)消息的優(yōu)先級最高,等待時間可以設為1ms,普通交流對象的消息的優(yōu)先級次之,可以將等待時間設為100ms,多人聊天消息的優(yōu)先級最低,可以將等待時間設為500ms,這樣既可以將消息分開處理,不影響用戶的流暢感,同時也可以保證重要的消息被優(yōu)先處理;進一步,可以為用戶提供一個設置窗口,由用戶自己設置不同消息的優(yōu)先級;再進一步,還可以由用戶自己設置不同優(yōu)先級消息的等待時間;特別是現(xiàn)在很多即時通訊軟件都為用戶提供了交流對象分組的功能,用戶可以對不同分組的交流對象的優(yōu)先級進行設置,可以讓用戶最快的看到其最關注的交流對象的離線消息,可以進一步滿足用戶的需要;步驟204、將所述設置了優(yōu)先級的消息放入消息隊列;步驟205、選取所述消息隊列中處于預置優(yōu)先級的消息進行處理;本實施例對不同消息類型的消息采用不同的優(yōu)先級處理,可以讓重要的消息優(yōu)先處理,從而滿足用戶的需要。
圖3是本發(fā)明方法第三實施例的具體流程圖,主要包括步驟301、接收消息;步驟302、判斷接收消息的時間是否超過預置期限,如果是,進入步驟303;如果否,進入步驟304;因為離線消息的數(shù)量是有限的,而本發(fā)明主要是為了不影響用戶的流暢感,所以設置一個期限,只將期限內(nèi)接收的消息加入消息隊列進行處理,過了這個預置期限的消息則直接處理;因為離線消息發(fā)送完成后,都是在線即時消息,所以為了提高消息的處理速度,直接對即時消息進行處理;不排除在所述預置期限內(nèi)就收到在線消息的情況,當然也不排除過了所述預置期限收到的消息也是離線消息的情況;步驟303、直接對所述消息進行處理;結束流程;步驟304、識別所述消息的消息類型;步驟305、根據(jù)所述消息的消息類型根據(jù)預置的規(guī)則為所述消息設置優(yōu)先級;步驟306、將所述設置了優(yōu)先級的消息放入消息隊列;步驟307、選取所述消息隊列中處于預置優(yōu)先級的消息進行處理;本實施例中,設置了一個期限,只對處于期限內(nèi)的消息進行分發(fā)處理,而過了期限后,不管是離線消息還是即時消息都直接處理,從而既不會影響用戶的流暢感,也不會對用戶的即時消息有較大的影響。
進一步的,如果超出了預置的期限,而此時消息隊列中還有消息沒有處理,則取出消息隊列中所有的消息進行處理,從而在以后的消息處理中都不需要用消息隊列,從而加快了消息的處理速度。
進一步的,如果用戶在預置的期限內(nèi)退出了登陸,而此時如果消息隊列中還有未處理的消息,為了使用戶的消息不會丟失,將所有未處理的消息進行處理,保存到對應的聊天記錄中。
當然,用戶登錄后,可能會立即選擇一個交流對象,此時為了不影響用戶的交流,要將消息隊列中所有屬于所述交流對象的全部消息進行處理,從而使用戶能夠盡快的看到所述交流對象的消息,滿足用戶的需要。
從上可知,本發(fā)明的處理步驟都是在客戶端進行,而即時通訊服務器不用做任何更改,從而不會加大即時通訊服務器的負擔,不用增加即時通訊運營商的運營支出;同時不會影響用戶的流暢感,減少了用戶登錄后因為要處理大量消息而需要的等待時間,使用戶能夠很快的使用軟件。
上面介紹了本發(fā)明提供的方法,如下將介紹本發(fā)明提供的裝置,本發(fā)明的裝置主要應用于即時通訊客戶端,參見圖4所示,本發(fā)明提供的裝置的一個實施例主要包括消息接收單元401,用于接收服務器發(fā)送的消息;
當用戶登錄即時通訊賬號時,即時通訊服務器就會將屬于該賬號的所有離線消息發(fā)送給即時通訊客戶端,消息接收單元就是用來接收這些消息;優(yōu)先級設置單元402,用于為消息接收單元接收的消息設置優(yōu)先級;消息接收單元每接收一個消息,優(yōu)先級設置單元都為其設置優(yōu)先級,一種可行的方案就是為每個消息設置一個等待時間;設置的具體方式在方法中以有描述,此處不再贅述;消息隊列維護單元403,用于將設置了優(yōu)先級的所述消息放入消息隊列;消息隊列維護單元維護有一個消息隊列,將設置了優(yōu)先級的消息都放入這個消息隊列;消息處理單元404,用于選取所述消息隊列中處于預置優(yōu)先級的消息進行處理;一般來說都是選取優(yōu)先級最高的消息進行處理,如果設置的是等待時間,則選取等待時間為0的消息進行處理。
從上可知,使用本發(fā)明裝置的該實施例,可以實現(xiàn)將大量離線消息逐個處理,使即時通訊軟件在處理離線消息時還可以響應用戶的操作,從而減少了用戶登錄即時軟件的等待時間,使用戶很快就可以使用即時通訊軟件,提高了用戶的滿意度。
進一步的,本發(fā)明裝置可以在上述裝置的基礎上增加一個計時單元,所述計時單元用于定時觸發(fā)消息隊列維護單元提高所述消息隊列中消息的優(yōu)先級;定期的提高消息隊列中消息的優(yōu)先級,如果是等待時間就減少等待時間,從而使先進入消息隊列的消息,哪怕優(yōu)先級最低也能夠對其進行處理,從而可以保證同一優(yōu)先級的消息可以實現(xiàn)先進先出,不會對用戶使用軟件有明顯的影響。
參見圖5,本發(fā)明裝置的另一實施例主要包括消息接收單元501,用于接收服務器發(fā)送的消息;消息類型識別單元502,用于識別所述消息接收單元接收的消息的消息類型;優(yōu)先級設置單元503,用于根據(jù)所述消息的消息類型按預置的規(guī)則為所述消息設置優(yōu)先級;預先為不同的消息類型設置不同的優(yōu)先級,從而優(yōu)先級設置單元可以根據(jù)消息識別單元識別的消息類型為消息設置優(yōu)先級,從而可以讓優(yōu)先級高的消息先處理,滿足用戶的需要;進一步,消息的優(yōu)先級可以由用戶自己設定,進一步滿足用戶的需要;消息隊列維護單元504,用于將設置了優(yōu)先級的所述消息放入消息隊列;定時單元505,用于定時觸發(fā)所述消息隊列維護單元提高所述消息隊列中消息的優(yōu)先級;定期或不定期的提高消息隊列中消息的優(yōu)先級,可以保證同一優(yōu)先級的消息實現(xiàn)先進先出,也能使低優(yōu)先級的消息也能夠被處理,從而不會對用戶使用軟件造成明顯的影響;消息處理單元506,用于選取所述消息隊列中處于預置優(yōu)先級的消息進行處理。
參見圖6,本發(fā)明裝置的第三實施例主要包括消息接收單元601,用于接收服務器發(fā)送的消息;期限判斷單元602,用于判斷所述消息接收單元接收消息的時刻是否超過預置的期限,如果否,觸發(fā)消息類型識別單元603對所述消息的類型進行識別;如果是,觸發(fā)消息處理單元607直接對所述消息進行處理;因為離線消息的數(shù)量是有限的,而本發(fā)明主要是為了不影響用戶的流暢感,所以設置一個期限,只將期限內(nèi)接收的消息加入消息隊列進行處理,過了這個預置期限的消息則直接處理;因為離線消息發(fā)送完成后,都是在線即時消息,所以為了提高消息的處理速度,直接對即時消息進行處理;不排除在所述預置期限內(nèi)就收到在線消息的情況,當然也不排除過了所述預置期限收到的消息也是離線消息的情況;消息類型識別單元603,用于識別所述消息接收單元接收的消息的消息類型;優(yōu)先級設置單元604,用于根據(jù)所述消息的消息類型按預置的規(guī)則為所述消息設置優(yōu)先級;消息隊列維護單元605,用于將設置了優(yōu)先級的所述消息放入消息隊列;定時單元606,用于定時觸發(fā)所述消息隊列維護單元提高所述消息隊列中消息的優(yōu)先級;消息處理單元607,用于選取所述消息隊列中處于預置優(yōu)先級的消息進行處理。
進一步的,如果用戶在預置的期限內(nèi)退出了登錄,所述期限判斷單元602還用于觸發(fā)所述消息處理單元607處理消息隊列中未處理的消息,從而保證用戶的信息不會丟失,不對用戶的交流造成影響。
進一步的,如果用戶在預置的期限內(nèi)選擇了一個交流對象,此時可以遍歷消息隊列,將所有屬于所述交流對象的消息全部由所述消息處理單元607進行處理,從而不會對用戶的交流造成影響。
因為本發(fā)明的裝置主要用于即時通訊客戶端,所以不會加大即時通訊服務器的負擔,同時不會影響用戶的流暢感,減少了用戶登錄后因為要處理大量消息而需要的等待時間,使用戶能夠很快的使用軟件,提高用戶的滿意度。
以上對本發(fā)明所提供的一種處理消息的方法及裝置進行了詳細介紹,本文中應用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領域的一般技術人員,依據(jù)本發(fā)明的思想,在具體實施方式
及應用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應理解為對本發(fā)明的限制。
權利要求
1.一種處理消息的方法,其特征在于,包括接收消息后,為所述消息設置優(yōu)先級,將所述消息放入消息隊列;選取所述消息隊列中處于預置優(yōu)先級的消息進行處理。
2.如權利要求1所述的處理消息的方法,其特征在于,定期提高所述消息隊列中消息的優(yōu)先級。
3.如權利要求1或2所述的處理消息的方法,其特征在于,接收消息后該方法進一步包括識別所述消息的消息類型,根據(jù)所述消息的消息類型按預置的規(guī)則為所述消息設置優(yōu)先級,進入將所述消息放入消息隊列的消息隊列的步驟。
4.如權利要求3所述的處理消息的方法,其特征在于,接收消息后該方法進一步包括判斷接收消息的時刻是否已經(jīng)超出預置的期限,如果否,進入識別所述消息的消息類型的步驟;如果是,對所述消息直接進行處理。
5.如權利要求4所述的處理消息的方法,其特征在于,如果用戶登錄的時間已經(jīng)超過所述預置的期限,該方法還包括取出所述消息隊列中所有的消息進行處理。
6.如權利要求4所述的處理消息的方法,其特征在于,如果用戶在所述預置的期限內(nèi)退出登錄,該方法還包括判斷所述消息隊列中是否還有消息未處理,如果是,取出所述消息隊列中所有未處理的消息進行處理。
7.如權利要求1或2所述的處理消息的方法,其特征在于,如果有多條處于預置優(yōu)先級的消息,選取所述多條處于預置優(yōu)先級的消息中最先進入所述消息隊列的消息進行處理。
8.如權利要求1或2所述的處理消息的方法,其特征在于,如果用戶選擇了一個交流對象,該方法還包括選取所述消息隊列中所述交流對象的所有消息進行處理。
9.一種處理消息的裝置,其特征在于,包括消息接收單元,用于接收服務器發(fā)送的消息;優(yōu)先級設置單元,用于為所述消息設置優(yōu)先級;消息隊列維護單元,用于將設置了優(yōu)先級的所述消息放入消息隊列;消息處理單元,用于選取所述消息隊列中處于預置優(yōu)先級的消息進行處理。
10.如權利要求9所述的處理消息的裝置,其特征在于,該裝置還包括定時單元,用于定時觸發(fā)所述消息隊列維護單元提高所述消息隊列中消息的優(yōu)先級。
11.如權利要求9或10所述的處理消息的裝置,其特征在于,該裝置還包括消息類型識別單元,用于識別所述消息接收單元接收的消息的消息類型;所述優(yōu)先級設置單元根據(jù)所述消息的消息類型按預置的規(guī)則為所述消息設置優(yōu)先級。
12.如權利要求11所述的處理消息的裝置,其特征在于,該裝置還包括期限判斷單元,用于判斷所述消息接收單元接收消息的時刻是否超過預置的期限,如果否,觸發(fā)所述消息類型識別單元對所述消息的類型進行識別;如果是,觸發(fā)所述消息處理單元直接對所述消息進行處理。
13.如權利要求12所述的處理消息的裝置,其特征在于,如果用戶在所述預置的期限內(nèi)退出登錄,所述期限判斷單元還用于觸發(fā)所述消息處理單元處理所述消息隊列中未處理的消息。
14.如權利要求9所述的處理消息的裝置,其特征在于,如果用戶選擇了一個交流對象,所述消息處理單元選取所述消息隊列中所述交流對象的所有消息進行處理。
全文摘要
本發(fā)明屬于即時通訊技術領域,具體為一種處理消息的方法及裝置,本發(fā)明提供的方法主要包括接收消息后,為所述消息設置優(yōu)先級,將所述消息放入消息隊列;選取所述消息隊列中處于預置優(yōu)先級的消息進行處理。使用本發(fā)明可以減少用戶登錄即時通訊軟件等待的時間,使用戶能夠很快就可以使用及時通訊軟件;同時不會額外增加即時通訊服務器的負荷,不會增加即時通訊運營商的運營成本。
文檔編號H04L29/02GK101068222SQ20071000096
公開日2007年11月7日 申請日期2007年1月15日 優(yōu)先權日2007年1月15日
發(fā)明者陳旭東, 范質彬, 黃銳生 申請人:騰訊科技(深圳)有限公司