
本發明涉及即時通信
技術領域:
,特別是涉及一種消息推送方法及裝置。
背景技術:
:隨著互聯網的高速發展,即時通信已成為人們生活中不可或缺的交流手段,在平時的休閑娛樂及工作中都得到了廣泛的應用。聊天室作為一種新興的即時通信方式,備受人們青睞。在聊天室里,人們可以暢所欲言。但是,由于聊天室里的用戶很多且大都是陌生人,當參與到聊天室聊天的用戶比較多或者用戶發言較為活躍時,難免會有一些質量較差的信息。如果短時間內發送了大量的質量較差的信息,將導致其他用戶發送的有用信息被淹沒在這些質量較差的信息里。并且,質量較差的信息會引起其他用戶的反感,使得用戶體驗差,降低用戶參與聊天室聊天的積極性。技術實現要素:本發明實施例的目的在于提供一種消息推送方法及裝置,以實現提高用戶體驗,提高用戶參與聊天室聊天的積極性。具體技術方案如下:第一方面,本發明實施例提供了一種消息推送方法,所述方法包括:接收聊天室用戶發送的聊天消息;對聊天消息進行檢測,得到聊天消息的質量等級;根據聊天消息的質量等級,將聊天消息存儲在對應的優先級隊列中;按照優先級從高到低的順序,依次從優先級隊列中取出待推送的聊天消息,并將待推送的聊天消息推送給聊天室的各用戶。可選的,所述對聊天消息進行檢測,得到聊天消息的質量等級,包括:根據聊天消息與聊天室主題的相關性、聊天消息出現的頻率、聊天室用戶的等級,確定聊天消息的質量等級。可選的,所述根據聊天消息的質量等級,將聊天消息存儲在對應的優先級隊列中,包括:根據聊天消息的質量等級,以及預設的質量等級與優先級之間的對應關系,確定聊天消息的優先級;根據聊天消息的優先級,將聊天消息存儲在對應的優先級隊列的頭部/尾部。可選的,各優先級隊列預先配置有其對應的最大長度;在根據聊天消息的優先級,將聊天消息存儲在對應的優先級隊列的頭部/尾部之后,本發明實施例的消息推送方法還包括:針對任一優先級隊列,當該優先級隊列的長度達到對應的最大長度時,根據先進先出的原則,取出該優先級隊列中尾部/頭部的聊天消息,并丟棄。可選的,所述按照優先級從高到低的順序,依次從優先級隊列中取出待推送的聊天消息,并將待推送的聊天消息推送給聊天室的各用戶,包括:依次確定當前存儲有消息的優先級隊列;按照優先級從高到低的順序,從所確定的優先級隊列中最高優先級的優先級隊列的尾部/頭部取出待推送的聊天消息,并將待推送的聊天消息推送給聊天室的各用戶。可選的,所述將待推送的聊天消息推送給聊天室的各用戶,包括:按照預設推送速率將待推送的聊天消息推送給聊天室的各用戶。第二方面,本發明實施例還提供了一種消息推送裝置,所述裝置包括:接收模塊,用于接收聊天室用戶發送的聊天消息;檢測模塊,用于對聊天消息進行檢測,得到聊天消息的質量等級;存儲模塊,用于根據聊天消息的質量等級,將聊天消息存儲在對應的優先級隊列中;推送模塊,用于按照優先級從高到低的順序,依次從優先級隊列中取出待推送的聊天消息,并將待推送的聊天消息推送給聊天室的各用戶。可選的,檢測模塊,具體用于根據聊天消息與聊天室主題的相關性、聊天消息出現的頻率、聊天室用戶的等級,確定聊天消息的質量等級。可選的,存儲模塊,包括:第一確定子模塊,用于根據聊天消息的質量等級,以及預設的質量等級與優先級之間的對應關系,確定聊天消息的優先級;存儲子模塊,用于根據聊天消息的優先級,將聊天消息存儲在對應的優先級隊列的頭部/尾部。可選的,各優先級隊列預先配置有其對應的最大長度;本發明實施例的消息推送裝置還包括:舍棄模塊,用于針對任一優先級隊列,當該優先級隊列的長度達到對應的最大長度時,根據先進先出的原則,取出該優先級隊列中尾部/頭部的聊天消息,并丟棄。可選的,推送模塊,包括:第二確定子模塊,用于依次確定當前存儲有消息的優先級隊列;推送子模塊,用于按照優先級從高到低的順序,從所確定的優先級隊列中最高優先級的優先級隊列的尾部/頭部取出待推送的聊天消息,并將待推送的聊天消息推送給聊天室的各用戶。可選的,推送模塊,具體用于按照預設推送速率將待推送的聊天消息推送給聊天室的各用戶。本發明實施例提供的一種消息推送方法及裝置,可以實現首先給用戶推送質量較高的聊天消息,將低質量的聊天消息延后推送或丟棄,提高用戶體驗,提高用戶參與聊天室聊天的積極性。當然,實施本發明的任一產品或方法并不一定需要同時達到以上所述的所有優點。附圖說明為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。圖1為本發明實施例的一種消息推送方法的流程圖;圖2為本發明實施例的一種消息推送裝置的結構圖。具體實施方式下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。為了解決現有技術中存在的問題,本發明實施例提供了一種消息推送方法及裝置,以實現提高用戶體驗,提高用戶參與聊天室聊天的積極性。下面,首先對本發明實施例的一種消息推送方法進行介紹,如圖1所示,為本發明實施例的一種消息推送方法的流程圖,該方法可以包括:s101,接收聊天室用戶發送的聊天消息。聊天室,即網絡聊天室,是在一個網站或一款軟件中,供多個用戶通過文字或/和語音進行實時交談、聊天的網絡場所,是一個面向整個因特網開放的場所。通常包括聊天室服務器和客戶端,其中,客戶端可以是web網頁,也可以是安裝在終端的應用程序。該聊天室服務器可以為臺式計算機、便攜式計算機等,還可以是布置在服務器機房的大型專業服務器。本發明實施例提供的方法,可以應用于聊天室服務器。通常情況下,聊天室用戶在使用聊天室時,首先可以通過聊天室服務器進行注冊,得到與該用戶對應的用戶名。然后,該用戶利用該用戶名在聊天室聊天,聊天室服務器可以接收該用戶發送的聊天消息。可以記錄該用戶的在線時長,為該用戶設置相應的等級。應當理解的是,參與到聊天室的聊天室用戶為至少一個。因此,聊天室服務器可以同時接收至少一個聊天室用戶發送的聊天消息。s102,對聊天消息進行檢測,得到聊天消息的質量等級。為了實現本發明實施例的目的,即首先給用戶推送質量較高的聊天消息,將低質量的聊天消息延后推送或丟棄。可以在聊天室服務器中預先設置不同優先級的存儲隊列,用于存儲對應的不同質量等級的聊天消息。為了能夠將聊天消息存儲到對應的優先級隊列中,首先可以對聊天消息進行質量等級劃分。因此,聊天室服務器接收到聊天消息后,首先對聊天消息進行檢測,得到該聊天消息的評分,然后根據預設質量等級表對該聊天消息進行質量等級劃分。其中,預設質量等級表可以如表1所示:表1預設質量等級表聊天消息評分質量等級聊天消息評分質量等級1~10151~60611~20261~70721~30371~80831~40481~90941~50591~10010其中,1級為最低的質量等級,表示該等級的聊天消息質量最差;10級為最高的質量等級,表示該等級的聊天消息質量最高。需要說明的是,表1所示的預設質量等級表僅僅是為了對本發明實施例進行更清楚的說明,并不能用于限定本發明實施例。應當理解的是,在實際應用中,還可以對預設質量等級表中的質量等級進行其他劃分,例如,可以將聊天消息的等級劃分為3個等級或10個等級。例如,聊天室服務器分別接收到聊天室用戶a、聊天室用戶b、聊天室用戶c發送的聊天消息,并分別對各聊天消息檢測后,得到聊天室用戶a發送的聊天消息的評分為65分、聊天室用戶b發送的聊天消息的評分為82分、聊天室用戶c發送的聊天消息的評分為96分,然后根據表1所示的預設質量登記表分別進行質量等級劃分,得到聊天室用戶a發送的聊天消息的質量等級為7級、聊天室用戶b發送的聊天消息的質量等級為9級、聊天室用戶c發送的聊天消息的質量等級為10級。具體地,可以在聊天室服務器中預先設置關鍵詞庫,該關鍵詞庫中的各個關鍵詞具有對應的質量等級。聊天室服務器在接收到聊天室用戶發送的聊天消息后,通過預先設置的關鍵詞庫對聊天消息進行分析,得到該聊天消息包含的至少一個關鍵詞及對應的質量等級。然后將各個關鍵詞對應的質量等級進行相應的計算,如求平均值等,可以得到該聊天消息的質量等級。例如,關鍵詞庫中可以保存有地理名稱、質量等級為5級。例如,全國范圍內的省、市、縣(區)鎮。還可以保存有:真、善、美等詞語或漢字,質量等級為最高等級10級。還可以保存有:丑陋、假、等詞語或漢字,質量等級為最低等級1級。聊天室服務器接收到聊天室用戶a發送的一條信息為“海南島真的很美”。通過關鍵詞庫對該聊天消息進行分析后,得到關鍵詞:海南、真、美,對應的質量等級分別為5級、10級、10級。然后對三個關鍵詞對應的質量等級求平均值并向上取整,得到該聊天消息對應的質量等級為9級。s103,根據聊天消息的質量等級,將聊天消息存儲在對應的優先級隊列中。為了對不同等級的聊天消息進行分別存儲,在這里設置了存儲隊列,該存儲隊列具有不同的優先級屬性,并且質量等級與優先級具有一一對應關系。例如,該對應關系可以是如表2所示的質量等級與優先級對應關系表(一),在該表中,優先級從高到低的順序分別為:10、9、8、7、6、5、4、3、2、1;還可以是如表3所示的質量等級與優先級對應關系表(二),在該表中,優先級從高到低的順序分別為:1、2、3、4、5、6、7、8、9、10。其中,該表僅僅用于更清楚的說明質量等級與優先級之間的關系。表2質量等級與優先級對應關系表(一)質量等級優先級質量等級優先級1166227733884499551010表3質量等級與優先級對應關系表(二)質量等級優先級質量等級優先級1106529743883479256101通過步驟s102得到聊天消息的質量等級后,可以根據質量等級與優先級的對應關系,將該聊天消息存儲在對應的存儲隊列中。例如,根據表2所示的質量等級與優先級對應關系表(一),聊天室用戶a發送的聊天消息的質量等級為7級、聊天室用戶b發送的聊天消息的質量等級為9級、聊天室用戶c發送的消息的質量等級為10級,則可以將用戶a發送的聊天消息存儲至優先級等級為7級的存儲隊列中,將用戶b發送的聊天消息存儲至優先級等級為9級的存儲隊列中,將用戶c發送的聊天消息存儲至優先級等級為10級的存儲隊列中。s104,按照優先級從高到低的順序,依次從優先級隊列中取出待推送的聊天消息,并將待推送的聊天消息推送給聊天室的各用戶。在存儲隊列中存儲有聊天消息時,聊天室服務器可以按照優先級從高到低的順序,依次從存儲隊列中取出待推送的聊天消息,推送給聊天室的各用戶。其中,上述的待推送的聊天消息至少為1條。例如,聊天室服務器在按照表2所示的質量等級與優先級對應關系表(一)對聊天消息進行存儲時,可以首先在優先級等級為10的存儲隊列中取出聊天消息并推送給各用戶,在該優先級隊列中存儲的聊天消息為空時,再從優先級等級為9的存儲隊列中取出聊天消息推送給各用戶。重復上述動作,直至所有優先級隊列中存儲的聊天消息都為空。本發明實施例提供的一種消息推送方法,可以實現首先給用戶推送質量較高的聊天消息,將低質量的聊天消息延后推送或丟棄,提高用戶體驗,提高用戶參與聊天室聊天的積極性,節省網絡資源。在聊天室中,還存在一種規定主題的聊天室,即每個聊天室都具有特定的主題。在通過上述實施例對聊天消息進行檢測時,得到的聊天消息的評分不一定能夠準確反映出該聊天室的聊天主題。因此,在本發明實施例中,為了使聊天消息的評分與聊天室的主題對應,在對聊天消息進行檢測時,還可以通過下述方法得到聊天消息的質量等級,該方法具體可以包括:第一步,根據聊天消息與聊天室主題的相關性,確定該聊天消息的相關性評分。聊天室用戶在聊天室發送消息時,每個聊天室都有相應的主題,當該用戶發送的聊天消息與該聊天室主題越接近、則相關性越高,因此,相關性評分也越高。具體地,可以通過相關性計算方法得到該聊天消息與該聊天室主題的相關性得分。其中,相關性計算方法為現有技術,此處不再贅述。例如,可以在聊天室服務器中預先設置不同相關性對應的相關性評分,假設,相關性為0的聊天消息的相關性評分為0,相關性為1的聊天消息的相關性評分為100分,相關性為0.55的聊天消息的相關性評分為55分。假設,聊天室服務器接收到聊天室用戶a發送的聊天消息w,對該聊天消息w進行相關性計算后,得到該聊天消息w的相關性為0.9,則該聊天消息w的相關性評分為90分。第二步,根據聊天消息出現的頻率,確定該聊天消息的頻率評分。在聊天室服務器中,可以預先設置不同頻率的聊天消息對應的評分,聊天室服務器在得到聊天消息后,與預先設置的不同頻率的聊天消息對應的評分進行對比,得到該聊天消息的頻率評分。例如,每分鐘出現100次的聊天消息的頻率評分為1分,每分鐘出現50次的聊天消息的頻率評分為50分,每分鐘出現1次的聊天消息的頻率評分為100分。假設聊天室用戶a發送的聊天消息w為每分鐘出現10次,則聊天消息w對應的評分為90分。第三步,根據聊天室用戶的等級,確定該聊天消息的等級評分。在聊天室服務器中,可以預先設置不同等級的聊天室用戶對應的評分,聊天室服務器在得到聊天消息后,首先根據該聊天消息,獲取該聊天室用戶的等級信息,再根據該聊天室用戶的等級得到對應的等級評分。假設,在聊天室服務器中,設置1~100共100個等級,每個等級對應一分,例如,等級100的聊天室用戶的聊天消息的等級評分為100,等級50的聊天室用戶的聊天消息的等級評分為50分。聊天室服務器接收到聊天室用戶a發送的聊天消息w后,根據該聊天消息w查詢得到聊天室用戶a的等級為60級,則該聊天消息w的等級評分為60分。第四步,對相關性評分、頻率評分及等級評分進行加權計算,確定聊天消息的質量等級。假設,在本發明實施例中,相關性評分的權重為0.4,頻率評分的權重為0.3,等級評分的權重為0.3。在通過上述三個步驟得到聊天用戶a發送的聊天消息w后,對該聊天消息w進行加權計算,可以得到該聊天消息w的綜合評分x,再根據表1所示的預設質量等級表得到聊天消息w的質量等級。具體地,聊天消息w的綜合評分x=90*0.4+90*0.3+60*0.3=81分,則聊天消息w的綜合評分為81分,對應的質量等級為9級。通過上述步驟,得到的聊天消息的質量等級能夠充分反映出聊天消息與聊天室主題的相關性,以及發送該聊天消息的聊天室用戶在該聊天室中的等級。在通過第一種實施方式對聊天消息進行存儲時,存儲到對應的優先級隊列中的各聊天消息容易存在無序存儲的問題。為了使存儲較早的聊天消息較早的推送給聊天室的各用戶,本發明實施例針對上述問題還提供了一種存儲方法,該方法可以包括:第一步,根據聊天消息的質量等級,以及預設的質量等級與優先級之間的對應關系,確定聊天消息的優先級。第二步,根據聊天消息的優先級,將聊天消息存儲在對應的優先級隊列的頭部/尾部。具體地,聊天室服務器中預先設置有質量等級與優先級的對應關系,可以是通過映射關系表的形式單獨存儲,聊天室服務器通過查詢映射關系表獲取與質量等級相應的優先級等級;也可以是在建立存儲隊列時,為存儲隊列預先設置質量等級和對應的優先級等級,聊天室服務器可以通過聊天消息的質量等級將該聊天消息存儲到對應優先級的存儲隊列中。通過上述方法對聊天消息進行存儲,可以使得較早存儲的聊天消息能夠較早的推送給聊天室的各用戶,防止聊天消息推送延遲過長的問題。在實際應用中,由于存儲聊天消息的硬件設備具有硬件存儲空間限制,因此,必須對各個優先級等級的存儲隊列的長度進行限定。具體地,可以在聊天室服務器中預先配置各個優先級等級對應的最大長度,各個優先級等級對應的最大長度可以相同,也可以不同,是根據實際應用進行設置的。需要說明的是,該最大長度可以是對聊天消息的數量進行限定的長度,即聊天消息的最大數量;也可以是對存儲隊列中的聊天消息占用的字符數進行限定的長度,即該存儲隊列能容納的字符數的最大數量。由于存儲隊列具有有限的最大長度,在通過上述實施方式對聊天消息存儲時,為了保證待存儲的聊天消息能夠存儲到對應的存儲隊列中,本發明實施例還提供了一種消息推送的方法,在根據聊天消息的優先級,將聊天消息存儲在對應的優先級隊列的頭部/尾部之后,該方法還可以包括:針對任一優先級隊列,當該優先級隊列的長度達到對應的最大長度時,根據先進先出的原則,取出該優先級隊列中尾部/頭部的聊天消息,并丟棄。例如,在聊天室服務器將聊天消息從優先級隊列的頭部存儲聊天消息到該優先級隊列時,當該優先級隊列的長度達到對應的最大長度后,則從該優先級隊列的尾部取出聊天消息并丟棄;在聊天室服務器將聊天消息從優先級隊列的尾部存儲聊天消息到該優先級隊列時,當該優先級隊列的長度達到對應的最大長度后,則從該優先級隊列的頭部取出聊天消息并丟棄。通過上述步驟,能夠保證每個優先級隊列中的聊天消息都是最新的聊天消息。具體地,為了保證高優先級隊列中存儲的聊天消息能夠優先推送,在按照優先級從高到低的順序,依次從優先級隊列中取出待推送的聊天消息,并將待推送的聊天消息推送給聊天室的各用戶時,聊天室服務器可以通過下述步驟推送聊天消息:首先,聊天室服務器依次確定當前存儲有消息的優先級隊列。具體地,聊天室服務器可以通過發送查詢消息給各個優先級隊列,以確定當前存儲有消息的優先級隊列,還可以在存儲聊天消息時,記錄各個優先級隊列存儲的聊天消息的長度,以確定存儲有消息的優先級隊列。其次,按照優先級從高到低的順序,從所確定的優先級隊列中最高優先級的優先級隊列的尾部/頭部取出待推送的聊天消息,并將待推送的聊天消息推送給聊天室的各用戶。例如,在表2所示的質量等級與優先級對應關系表(一)中,優先級從高到低的順序分別為:10、9、8、7、6、5、4、3、2、1。假設,優先級等級為10的優先級隊列中存儲的消息為10條,優先級等級為8的優先級隊列中存儲的聊天消息為20條,優先級等級為5的優先級隊列中存儲的聊天消息為7條,其他優先級等級對應的優先級隊列中存儲的聊天消息為0條。聊天室服務器在通過上述步驟推送消息時,首先從優先級等級為10的優先級隊列中依次取出待推送的聊天消息,并推送給聊天室的各用戶。在該等級對應的優先級隊列中存儲的聊天消息為0時,再從優先級等級為8的優先級隊列中依次取出待推送的聊天消息,推送給聊天室的各用戶。最后,從優先級等級為5的優先級隊列中依次取出待推送的聊天消息,推送給聊天室的各用戶。為了保證聊天消息能夠及時推送給聊天室的各用戶,并且保證各用戶能夠看清楚聊天室服務器推送的各聊天消息,在將待推送的聊天消息推送給聊天室的各用戶時,可以按照預設推送速率將待推送的聊天消息推送給聊天室的各用戶。需要說明的是,上述的預設推送速率是根據實際應用設置的速率,本發明實施例對推送速率不作限定。相應于上述方法實施例,本發明實施例提供了一種消息推送裝置,如圖2所示,為本發明實施例的一種消息推送裝置的結構圖,該裝置可以包括:接收模塊201,用于接收聊天室用戶發送的聊天消息;檢測模塊202,用于對聊天消息進行檢測,得到聊天消息的質量等級;存儲模塊203,用于根據聊天消息的質量等級,將聊天消息存儲在對應的優先級隊列中;推送模塊204,用于按照優先級從高到低的順序,依次從優先級隊列中取出待推送的聊天消息,并將待推送的聊天消息推送給聊天室的各用戶。本發明實施例提供的一種消息推送裝置,可以實現首先給用戶推送質量較高的聊天消息,將低質量的聊天消息延后推送或丟棄,提高用戶體驗,提高用戶參與聊天室聊天的積極性,節省網絡資源。具體地,檢測模塊202,具體用于根據聊天消息與聊天室主題的相關性、聊天消息出現的頻率、聊天室用戶的等級,確定聊天消息的質量等級。具體地,存儲模塊203,包括:第一確定子模塊,用于根據聊天消息的質量等級,以及預設的質量等級與優先級之間的對應關系,確定聊天消息的優先級。存儲子模塊,用于根據聊天消息的優先級,將聊天消息存儲在對應的優先級隊列的頭部/尾部。具體地,各優先級隊列預先配置有其對應的最大長度;本發明實施例的消息推送裝置還包括:舍棄模塊,用于針對任一優先級隊列,當該優先級隊列的長度達到對應的最大長度時,根據先進先出的原則,取出該優先級隊列中尾部/頭部的聊天消息,并丟棄。具體地,推送模塊204,包括:第二確定子模塊,用于依次確定當前存儲有消息的優先級隊列。推送子模塊,用于按照優先級從高到低的順序,從所確定的優先級隊列中最高優先級的優先級隊列的尾部/頭部取出待推送的聊天消息,并將待推送的聊天消息推送給聊天室的各用戶。具體地,推送模塊204,具體用于按照預設推送速率將待推送的聊天消息推送給聊天室的各用戶。應當理解的是,本發明實施例的一種消息推送裝置還可以包括中央處理器,用于接收上述各模塊發送的指令,并對該指令進行相應處理;或者,對上述各模塊發送相應的控制指令,使各模塊進行相應的處理。需要說明的是,在本文中,諸如第一和第二等之類的關系術語僅僅用來將一個實體或者操作與另一個實體或操作區分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關系或者順序。而且,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設備中還存在另外的相同要素。本說明書中的各個實施例均采用相關的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對于系統實施例而言,由于其基本相似于方法實施例,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。以上所述僅為本發明的較佳實施例而已,并非用于限定本發明的保護范圍。凡在本發明的精神和原則之內所作的任何修改、等同替換、改進等,均包含在本發明的保護范圍內。當前第1頁12