消息計數方法及裝置的制造方法
【技術領域】
[0001]本發明涉及計算機技術領域,特別涉及一種消息計數方法及裝置。
【背景技術】
[0002]在諸如微博之類的社交應用中,若用戶A收聽了用戶B,則服務器需要將用戶B發表且用戶A未讀的消息的數量統計到用戶A首頁的未讀消息計數中,以便用戶A在登錄首頁后可以對用戶B新發表的消息進行查看。
[0003]現有的一種消息計數方法包括:服務器獲取終端上次讀取未讀消息計數的讀取時間和用戶的收聽用戶列表;對于收聽用戶列表中的每個收聽用戶,服務器對該收聽用戶在讀取時間之后發表的消息的數目相加,得到消息計數;將所有收聽用戶的消息計數相加后得到未讀消息計數。
[0004]發明人在實現本發明的過程中,發現現有技術中至少存在以下缺陷:
[0005]服務器需要獲取收聽用戶列表,再獲取每個收聽用戶發表的消息,使得統計未讀消息計數的計算量較大,影響了對未讀消息的計數效率。
【發明內容】
[0006]為了解決服務器獲取每個收聽用戶發表的消息影響對未讀消息的計數效率的問題,本發明實施例提供了一種消息計數方法及裝置。所述技術方案如下:
[0007]第一方面,本發明實施例提供了一種消息計數方法,所述方法包括:
[0008]在與終端建立連接后,接收所述終端發送的讀取請求,所述讀取請求中攜帶有用戶標識,所述用戶標識用于標識在所述終端中登錄的用戶;
[0009]獲取所述用戶的收聽用戶列表以及所述終端上次讀取未讀消息計數的上次讀取時間,所述收聽用戶列表包括所述用戶收聽的至少一個收聽用戶;
[0010]獲取每個收聽用戶最近一次發表消息的發表時間;
[0011]對于發表時間在所述上次讀取時間之后的收聽用戶,將所有所述收聽用戶在所述上次讀取時間之后發表的消息的數目相加,得到本次的未讀消息計數。
[0012]第二方面,本發明實施例提供了一種消息計數裝置,所述裝置包括:
[0013]請求接收模塊,用于在與終端建立連接后,接收所述終端發送的讀取請求,所述讀取請求中攜帶有用戶標識,所述用戶標識用于標識在所述終端中登錄的用戶;
[0014]信息獲取模塊,用于獲取所述用戶的收聽用戶列表以及所述終端上次讀取未讀消息計數的上次讀取時間,所述收聽用戶列表包括所述用戶收聽的至少一個收聽用戶;
[0015]時間獲取模塊,用于獲取每個收聽用戶最近一次發表消息的發表時間;
[0016]消息計數模塊,用于對于所述時間獲取模塊獲取到的發表時間在所述上次讀取時間之后的收聽用戶,將所有所述收聽用戶在所述上次讀取時間之后發表的消息的數目相力口,得到本次的未讀消息計數。
[0017]通過獲取用戶的收聽用戶列表以及終端上次讀取未讀消息計數的上次讀取時間,該收聽用戶列表包括用戶收聽的至少一個收聽用戶;獲取每個收聽用戶最近一次發表消息的發表時間;對于發表時間在上次讀取時間之后的收聽用戶,將所有收聽用戶在上次讀取時間之后發表的消息的數目相加,得到本次的未讀消息計數,可以篩選出在上次讀取時間之后發表消息的收聽用戶,避免了對在上次讀取時間之后未發表消息的收聽用戶的訪問,解決了服務器獲取每個收聽用戶發表的消息影響對未讀消息的計數效率的問題,達到了提高對未讀消息的計數效率的效果。
【附圖說明】
[0018]為了更清楚地說明本發明實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
[0019]圖1是本發明一個實施例提供的消息計數方法的方法流程圖;
[0020]圖2是本發明另一實施例提供的消息計數方法的方法流程圖;
[0021]圖3是本發明一個實施例提供的消息計數裝置的結構框架圖;
[0022]圖4是本發明再一實施例提供的消息計數裝置的結構框架圖;
[0023]圖5是本發明一個實施例提供的服務器的結構示意圖。
【具體實施方式】
[0024]為使本發明的目的、技術方案和優點更加清楚,下面將結合附圖對本發明實施方式作進一步地詳細描述。
[0025]請參考圖1,其示出了本發明一個實施例提供的消息計數方法的方法流程圖,該消息計數方法可以應用于服務器中。該消息計數方法,包括:
[0026]步驟101,在與終端建立連接后,接收終端發送的讀取請求,該讀取請求中攜帶有用戶標識,該用戶標識用于標識在終端中登錄的用戶;
[0027]讀取請求是終端訪問社交應用的首頁時,向服務器發送的讀取未讀消息計數的請求。未讀消息計數是對收聽用戶發表且用戶未查看過的消息的計數,收聽用戶是用戶在社交應用中所收聽的用戶。
[0028]步驟102,獲取用戶的收聽用戶列表以及終端上次讀取未讀消息計數的上次讀取時間,該收聽用戶列表包括用戶收聽的至少一個收聽用戶;
[0029]上次讀取時間是服務器記錄的、終端上次讀取未讀消息計數的時間。
[0030]步驟103,獲取每個收聽用戶最近一次發表消息的發表時間;
[0031]步驟104,對于發表時間在上次讀取時間之后的收聽用戶,將所有收聽用戶在上次讀取時間之后發表的消息的數目相加,得到本次的未讀消息計數。
[0032]若某些收聽用戶在上次讀取時間之后未發表消息,則對這些收聽用戶統計的未讀消息計數為0。由于服務器統計這些收聽用戶的未讀消息計數并不會改變未讀消息計數,并且會浪費時間,因此,服務器可以先篩選出在上次讀取時間之后發表過消息的收聽用戶,再對篩選出的收聽用戶的未讀消息計數進行統計,以節省對未讀消息計數的統計時間,提高對未讀消息的計數效率。
[0033]綜上所述,本發明實施例提供的消息計數方法,通過獲取用戶的收聽用戶列表以及終端上次讀取未讀消息計數的上次讀取時間,該收聽用戶列表包括用戶收聽的至少一個收聽用戶;獲取每個收聽用戶最近一次發表消息的發表時間;對于發表時間在上次讀取時間之后的收聽用戶,將所有收聽用戶在上次讀取時間之后發表的消息的數目相加,得到本次的未讀消息計數,可以篩選出在上次讀取時間之后發表消息的收聽用戶,避免了對在上次讀取時間之后未發表消息的收聽用戶的訪問,解決了服務器獲取每個收聽用戶發表的消息影響對未讀消息的計數效率的問題,達到了提高對未讀消息的計數效率的效果。
[0034]請參考圖2,其示出了本發明另一實施例提供的消息計數方法的方法流程圖,該消息計數方法可以應用于服務器中。該消息計數方法,包括:
[0035]步驟201,在與終端建立連接后,接收終端發送的讀取請求,該讀取請求中攜帶有用戶標識,該用戶標識用于標識在終端中登錄的用戶;
[0036]讀取請求是終端訪問社交應用的首頁時,向服務器發送的讀取未讀消息計數的請求。未讀消息計數是對收聽用戶發表且用戶未查看過的消息的計數,收聽用戶是用戶在社交應用中所收聽的用戶。
[0037]步驟202,獲取用戶的收聽用戶列表以及終端上次讀取未讀消息計數的上次讀取時間,該收聽用戶列表包括用戶收聽的至少一個收聽用戶;
[0038]終端會在讀取請求中攜帶用戶標識,服務器根據用戶標識可以確定用戶,獲取該用戶的收聽用戶列表和該用戶上次使用終端讀取未讀消息計數的上次讀取時間。
[0039]本實施例中,收聽用戶列表是服務器從用于記錄收聽關系的中轉服務器中獲取得到的。優選地,服務器還可以對獲取到的用戶收聽列表進行緩存,以便下次可以直接從緩存中獲取該收聽用戶列表,提高對用戶收聽列表的獲取效率。
[0040]進一步地,服務器還可以對緩存中的收聽用戶列表進行更新。比如,當用戶編輯了收聽用戶列表中的收聽用戶時,服務器可以根據編輯內容對緩存中的收聽用戶列表進行更新,或,服務器可以重新從中轉服務器中獲取更新后的收聽用戶列表。又比如,當收聽用戶列表的緩存時間超過預先設置的過期時間時,服務器可以重新從中轉服務器中獲取收聽用戶列表,以保證收聽用戶列表的準確性。
[0041]本實施例中,服務器可以將上次讀取時間和用戶標識進行對應存儲。
[0042]步驟203,獲取每個收聽用戶最近一次發表消息的發表時間;
[0043]在收聽用戶將發表的消息發送給用于轉發消息的中轉服務器后,中轉服務器將消息發送給收聽該收聽用戶的用戶的服務器,