CN105376103B - 消息计数方法及装置 - Google Patents

消息计数方法及装置 Download PDF

Info

Publication number
CN105376103B
CN105376103B CN201410411954.1A CN201410411954A CN105376103B CN 105376103 B CN105376103 B CN 105376103B CN 201410411954 A CN201410411954 A CN 201410411954A CN 105376103 B CN105376103 B CN 105376103B
Authority
CN
China
Prior art keywords
user
time
read
last
message
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201410411954.1A
Other languages
English (en)
Other versions
CN105376103A (zh
Inventor
梁勤柱
祝丁丁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Beijing Co Ltd
Original Assignee
Tencent Technology Beijing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Beijing Co Ltd filed Critical Tencent Technology Beijing Co Ltd
Priority to CN201410411954.1A priority Critical patent/CN105376103B/zh
Publication of CN105376103A publication Critical patent/CN105376103A/zh
Application granted granted Critical
Publication of CN105376103B publication Critical patent/CN105376103B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种消息计数方法及装置,属于计算机技术领域。所述方法包括:在与终端建立连接后,接收终端发送的读取请求;获取用户的收听用户列表以及终端上次读取未读消息计数的上次读取时间,该收听用户列表包括用户收听的至少一个收听用户;获取每个收听用户最近一次发表消息的发表时间;对于发表时间在上次读取时间之后的收听用户,将所有收听用户在上次读取时间之后发表的消息的数目相加,得到本次的未读消息计数。所述装置包括:请求接收模块、信息获取模块、时间获取模块和消息计数模块。本发明可解决服务器获取每个收听用户发表的消息影响对未读消息的计数效率的问题,达到提高对未读消息的计数效率的效果。

Description

消息计数方法及装置
技术领域
本发明涉及计算机技术领域,特别涉及一种消息计数方法及装置。
背景技术
在诸如微博之类的社交应用中,若用户A收听了用户B,则服务器需要将用户B发表且用户A未读的消息的数量统计到用户A首页的未读消息计数中,以便用户A在登录首页后可以对用户B新发表的消息进行查看。
现有的一种消息计数方法包括:服务器获取终端上次读取未读消息计数的读取时间和用户的收听用户列表;对于收听用户列表中的每个收听用户,服务器对该收听用户在读取时间之后发表的消息的数目相加,得到消息计数;将所有收听用户的消息计数相加后得到未读消息计数。
发明人在实现本发明的过程中,发现现有技术中至少存在以下缺陷:
服务器需要获取收听用户列表,再获取每个收听用户发表的消息,使得统计未读消息计数的计算量较大,影响了对未读消息的计数效率。
发明内容
为了解决服务器获取每个收听用户发表的消息影响对未读消息的计数效率的问题,本发明实施例提供了一种消息计数方法及装置。所述技术方案如下:
第一方面,本发明实施例提供了一种消息计数方法,所述方法包括:
在与终端建立连接后,接收所述终端发送的读取请求,所述读取请求中携带有用户标识,所述用户标识用于标识在所述终端中登录的用户;
获取所述用户的收听用户列表以及所述终端上次读取未读消息计数的上次读取时间,所述收听用户列表包括所述用户收听的至少一个收听用户;
获取每个收听用户最近一次发表消息的发表时间;
若在所述上次读取时间之后首次统计未读消息计数,则筛选出发表时间在所述上次读取时间之后的收听用户,对筛选出的每个收听用户在所述上次读取时间之后所发表的消息的数目相加,得到本次的未读消息计数;
若在所述上次读取时间之后非首次统计未读消息计数,则筛选出发表时间在上次统计时间之后的收听用户,对筛选出的每个收听用户在所述上次统计时间之后所发表的消息的数目相加,将相加得到的和加上上次未读消息计数,得到本次的未读消息计数。
第二方面,本发明实施例提供了一种消息计数装置,所述装置包括:
请求接收模块,用于在与终端建立连接后,接收所述终端发送的读取请求,所述读取请求中携带有用户标识,所述用户标识用于标识在所述终端中登录的用户;
信息获取模块,用于获取所述用户的收听用户列表以及所述终端上次读取未读消息计数的上次读取时间,所述收听用户列表包括所述用户收听的至少一个收听用户;
时间获取模块,用于获取每个收听用户最近一次发表消息的发表时间;
消息计数模块,用于若在所述上次读取时间之后首次统计未读消息计数,则筛选出发表时间在所述上次读取时间之后的收听用户,对筛选出的每个收听用户在所述上次读取时间之后所发表的消息的数目相加,得到本次的未读消息计数;
所述消息计数模块,还用于若在所述上次读取时间之后非首次统计未读消息计数,则筛选出发表时间在上次统计时间之后的收听用户,对筛选出的每个收听用户在所述上次统计时间之后所发表的消息的数目相加,将相加得到的和加上上次未读消息计数,得到本次的未读消息计数。
第三方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有程序,所述程序用于实现如第一方面所述的消息计数方法。通过获取用户的收听用户列表以及终端上次读取未读消息计数的上次读取时间,该收听用户列表包括用户收听的至少一个收听用户;获取每个收听用户最近一次发表消息的发表时间;对于发表时间在上次读取时间之后的收听用户,将所有收听用户在上次读取时间之后发表的消息的数目相加,得到本次的未读消息计数,可以筛选出在上次读取时间之后发表消息的收听用户,避免了对在上次读取时间之后未发表消息的收听用户的访问,解决了服务器获取每个收听用户发表的消息影响对未读消息的计数效率的问题,达到了提高对未读消息的计数效率的效果。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例提供的消息计数方法的方法流程图;
图2是本发明另一实施例提供的消息计数方法的方法流程图;
图3是本发明一个实施例提供的消息计数装置的结构框架图;
图4是本发明再一实施例提供的消息计数装置的结构框架图;
图5是本发明一个实施例提供的服务器的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
请参考图1,其示出了本发明一个实施例提供的消息计数方法的方法流程图,该消息计数方法可以应用于服务器中。该消息计数方法,包括:
步骤101,在与终端建立连接后,接收终端发送的读取请求,该读取请求中携带有用户标识,该用户标识用于标识在终端中登录的用户;
读取请求是终端访问社交应用的首页时,向服务器发送的读取未读消息计数的请求。未读消息计数是对收听用户发表且用户未查看过的消息的计数,收听用户是用户在社交应用中所收听的用户。
步骤102,获取用户的收听用户列表以及终端上次读取未读消息计数的上次读取时间,该收听用户列表包括用户收听的至少一个收听用户;
上次读取时间是服务器记录的、终端上次读取未读消息计数的时间。
步骤103,获取每个收听用户最近一次发表消息的发表时间;
步骤104,对于发表时间在上次读取时间之后的收听用户,将所有收听用户在上次读取时间之后发表的消息的数目相加,得到本次的未读消息计数。
若某些收听用户在上次读取时间之后未发表消息,则对这些收听用户统计的未读消息计数为0。由于服务器统计这些收听用户的未读消息计数并不会改变未读消息计数,并且会浪费时间,因此,服务器可以先筛选出在上次读取时间之后发表过消息的收听用户,再对筛选出的收听用户的未读消息计数进行统计,以节省对未读消息计数的统计时间,提高对未读消息的计数效率。
综上所述,本发明实施例提供的消息计数方法,通过获取用户的收听用户列表以及终端上次读取未读消息计数的上次读取时间,该收听用户列表包括用户收听的至少一个收听用户;获取每个收听用户最近一次发表消息的发表时间;对于发表时间在上次读取时间之后的收听用户,将所有收听用户在上次读取时间之后发表的消息的数目相加,得到本次的未读消息计数,可以筛选出在上次读取时间之后发表消息的收听用户,避免了对在上次读取时间之后未发表消息的收听用户的访问,解决了服务器获取每个收听用户发表的消息影响对未读消息的计数效率的问题,达到了提高对未读消息的计数效率的效果。
请参考图2,其示出了本发明另一实施例提供的消息计数方法的方法流程图,该消息计数方法可以应用于服务器中。该消息计数方法,包括:
步骤201,在与终端建立连接后,接收终端发送的读取请求,该读取请求中携带有用户标识,该用户标识用于标识在终端中登录的用户;
读取请求是终端访问社交应用的首页时,向服务器发送的读取未读消息计数的请求。未读消息计数是对收听用户发表且用户未查看过的消息的计数,收听用户是用户在社交应用中所收听的用户。
步骤202,获取用户的收听用户列表以及终端上次读取未读消息计数的上次读取时间,该收听用户列表包括用户收听的至少一个收听用户;
终端会在读取请求中携带用户标识,服务器根据用户标识可以确定用户,获取该用户的收听用户列表和该用户上次使用终端读取未读消息计数的上次读取时间。
本实施例中,收听用户列表是服务器从用于记录收听关系的中转服务器中获取得到的。优选地,服务器还可以对获取到的用户收听列表进行缓存,以便下次可以直接从缓存中获取该收听用户列表,提高对用户收听列表的获取效率。
进一步地,服务器还可以对缓存中的收听用户列表进行更新。比如,当用户编辑了收听用户列表中的收听用户时,服务器可以根据编辑内容对缓存中的收听用户列表进行更新,或,服务器可以重新从中转服务器中获取更新后的收听用户列表。又比如,当收听用户列表的缓存时间超过预先设置的过期时间时,服务器可以重新从中转服务器中获取收听用户列表,以保证收听用户列表的准确性。
本实施例中,服务器可以将上次读取时间和用户标识进行对应存储。
步骤203,获取每个收听用户最近一次发表消息的发表时间;
在收听用户将发表的消息发送给用于转发消息的中转服务器后,中转服务器将消息发送给收听该收听用户的用户的服务器,服务器在接收到消息后,将该消息缓存在消息列表中。其中,每条消息中记录有该消息的发表时间。
服务器可以从消息列表中读取每个收听用户最近一次发表的消息,并从读取出的每条消息中获取发表时间,得到每个收听用户最近一次发表消息的发表时间。
比如,用户A收听了用户B和用户C,用户B发表在2014年7月30日2点30分发表了消息1,在2014年7月30日3点45分发表了消息2,用户C在2014年7月18日1点28分发表了消息3,则用户B最近一次发表消息的发表时间是2014年7月30日3点45分,用户C最近一次发表消息的发表时间是2014年7月18日1点28分。
需要补充说明的是,服务器还可以对消息列表设置过期时间,则当某一条消息的缓存时间超过过期时间时,服务器可以在消息列表中删除该消息,以节省服务器的缓存空间。
步骤204,对于发表时间在上次读取时间之后的收听用户,将所有收听用户在上次读取时间之后发表的消息的数目相加,得到本次的未读消息计数;
若某些收听用户在上次读取时间之后未发表消息,则对这些收听用户统计的未读消息计数为0。由于服务器统计这些收听用户的未读消息计数并不会改变未读消息计数,并且会浪费时间,因此,服务器可以先筛选出在上次读取时间之后发表过消息的收听用户,再对筛选出的收听用户的未读消息计数进行统计,以节省对未读消息计数的统计时间,提高对未读消息的计数效率。
具体地,对于发表时间在上次读取时间之后的收听用户,将所有收听用户在上次读取时间之后发表的消息的数目相加,得到本次的未读消息计数,包括:
1)若在上次读取时间之后首次统计未读消息计数,则筛选出发表时间在上次读取时间之后的收听用户,对筛选出的每个收听用户在上次读取时间之后所发表的消息的数目相加,得到本次的未读消息计数;
2)若在上次读取之间之后非首次统计未读消息计数,则再筛选出发表时间在上次统计时间之后的收听用户,对筛选出的每个收听用户在上次统计时间之后所发表的消息的数目相加,将相加得到的和加上上次未读消息计数,得到本次的未读消息计数。
第一,若服务器是在上次读取时间之后首次统计未读消息计数,则服务器可以比较各个收听用户的发表时间和上次读取时间,筛选出在上次读取时间之后的发表时间,再获取筛选出的发表时间所对应的收听用户。对于获取到的每一个收听用户,服务器可以从消息列表中获取该收听用户在上次读取时间之后发表的消息的数目,得到该收听用户的第一计数。在得到每个收听用户的第一计数后,服务器将所有的第一计数相加,将相加得到的和确定为本次的未读消息计数。
在获取到本次的未读消息计数后,服务器将该未读消息计数发送给终端,对未读消息计数进行清空,并记录本次的读取时间。
第二,在服务器与终端处于连接状态时,服务器还可以在首次统计到未读消息计数后,每隔预定时间再次统计未读消息计数,以便用户刷新社交应用的首页时,服务器可以直接将未读消息计数发送给终端,提高计数获取效率。并且,通过每隔预定时间来统计未读消息计数,可以避免一次性对上次读取时间之后的未读消息进行计数时,统计量过大的问题。
在上次读取时间之后,若服务器统计过未读消息计数时,服务器会对上次统计未读消息计数的统计时间进行记录,得到上次统计时间。服务器可以比较获取到的各个收听用户的发表时间和上次统计时间,筛选出在上次统计时间之后的发表时间,再获取筛选出的发表时间所对应的收听用户。对于获取到的每一个收听用户,服务器可以从消息列表中获取该收听用户在上次统计时间之后发表的消息的数目,得到该收听用户的第二计数。在得到每个收听用户的第二计数后,服务器将所有的第二计数相加,将相加得到的和加上上次统计得到的未读消息计数,得到本次的未读消息计数。由于可以根据上次统计时间对收听用户进行过滤,减少了对消息列表的访问规模。
比如,用户A在上次读取时间之后首次统计未读消息计数,若用户A收听了用户B和用户C,上次读取时间是2014年7月28日5点,每次统计的间隔是1小时,本实施例以一天的未读消息计数为例进行说明,下文中省略2014年7月28日的日期,则具体计数过程如下:
1、若终端在5点10分再次读取未读消息计数,用户B在5点05分发表了消息1,用户C在5点09分发表了消息2,则服务器统计到用户B在上次读取时间后发表的消息的第一计数为1,用户C在上次读取时间后发表的消息的第一计数为1,得到本次的未读消息计数为2,记录统计时间为5点10分;
2、在当前时刻为6点10分且终端未再次读取未读消息计数时,距离上次统计的间隔时间达到1小时,服务器再次统计未读消息计数。若用户B在5点10分至6点10分之间未发表消息,用户C在5点26分发表了消息3,则不对用户B的消息进行统计,仅对用户C发表的消息进行统计,得到第二计数1,将第二计数加上上次的未读消息计数为3,得到本次的未读消息计数为3。
又比如,用户A在上次读取时间之后非首次统计未读消息计数,即服务器在上次读取时间之后、本次统计之前已经统计过未读消息计数,该统计可以是终端在保持社交应用的首页处于显示且未刷新的状态后,服务器每隔预定时间自动触发的未读消息计数的统计。若用户A收听了用户B和用户C,上次读取时间是2014年7月28日4点,上次统计时间是2014年7月28日5点,每次统计的间隔是1小时,上次统计的未读消息计数为3,本实施例以一天的未读消息计数为例进行说明,下文中省略2014年7月28日的日期,则具体计数过程如下:
1、若终端在5点10分再次读取未读消息计数,用户B在5点05分发表了消息1,用户C在5点09分发表了消息2,则服务器统计到用户B在上次统计时间后发表的消息的第二计数为1,用户C在上次统计时间后发表的消息的第二计数为1,将第二计数之和加上上次的未读消息计数为5,得到本次的未读消息计数为5,记录统计时间为5点10分;
2、在当前时刻为6点10分且终端未再次读取未读消息计数时,距离上次统计的间隔时间达到1小时,服务器再次统计未读消息计数。若用户B在5点10分至6点10分之间未发表消息,用户C在5点26分发表了消息3,则不对用户B的消息进行统计,仅对用户C发表的消息进行统计,得到第二计数1,将第二计数加上上次的未读消息计数为6,得到本次的未读消息计数为6。
步骤205,检测终端是否在预定时长内再次发送过读取请求,若检测出终端未在预定时长内再次发送过读取请求,则执行步骤206;
若终端长时间不读取未读消息计数,则服务器可以对缓存的未读消息计数、上次读取时间和上次统计时间进行清空,以节省服务器的缓存空间。因此,服务器还可以在终端关闭社交应用的首页,或,终端从社交应用的首页跳转到社交应用的其它页面后,对终端是否在预定时长内再次读取未读消息计数进行检测。即服务器检测终端是否在预定时长内再次发送过读取请求。
具体地,在终端关闭首页或从首页跳转到其它页面时,服务器对操作时刻进行记录,并基于该操作时刻向后定位预定时长,得到基准时刻。服务器检测终端在基准时刻之前是否再次发送过读取请求,若检测出终端在基准时刻之前再次发送过读取请求,则继续执行步骤201;若检测出终端未在基准时刻之前再次发送过读取请求,则服务器可以直接对未读消息计数、上次读取时间和上次统计时间进行清空,也可以继续执行步骤206。
步骤206,每隔预定时间读取未读消息计数;检测读取未读消息计数的读取次数是否达到读取阈值;若检测出读取次数达到读取阈值,则对缓存的未读消息计数、上次读取时间和上次统计时间进行删除;若检测出读取次数未达到读取阈值,则触发执行每隔预定时间读取未读消息计数的步骤。
服务器可以在基准时刻读取未读消息计数,将读取次数记为1,检测读取次数是否超过读取阈值。若服务器检测出读取次数未超过读取阈值,则在间隔预定时长后再次读取未读消息计数,将读取次数修改为2,再次检测读取次数是否超过读取阈值。若服务器检测出读取次数超过读取阈值,则对未读消息计数、上次读取时间和上次统计时间进行清空,结束流程;若服务器检测出读取次数未超过读取阈值,则在间隔预定时长后再次读取未读消息计数,将读取次数修改为3,依次类推,直至检测出读取次数超过读取阈值后对未读消息计数、上次读取时间和上次统计时间进行清空。
需要补充说明的是,本实施例提供的消息计数方法,还包括:
若再次接收到终端发送的读取请求,则清空读取次数。
若在读取次数未超过读取阈值时,终端再次向服务器发送了读取请求,则服务器可以对读取次数进行清空,以避免对未读消息计数、上次读取时间和上次统计时间的清空。
综上所述,本发明实施例提供的消息计数方法,通过获取用户的收听用户列表以及终端上次读取未读消息计数的上次读取时间,该收听用户列表包括用户收听的至少一个收听用户;获取每个收听用户最近一次发表消息的发表时间;对于发表时间在上次读取时间之后的收听用户,将所有收听用户在上次读取时间之后发表的消息的数目相加,得到本次的未读消息计数,可以筛选出在上次读取时间之后发表消息的收听用户,避免了对在上次读取时间之后未发表消息的收听用户的访问,解决了服务器获取每个收听用户发表的消息影响对未读消息的计数效率的问题,达到了提高对未读消息的计数效率的效果。
另外,通过每隔预定时间读取未读消息计数;检测读取未读消息计数的读取次数是否达到读取阈值;若检测出读取次数达到读取阈值,则对缓存的未读消息计数、上次读取时间和上次统计时间进行删除,可以在终端长时间不读取未读消息计数时,对未读消息计数、上次读取时间和上次统计时间进行清空,以节省服务器的缓存空间。
请参考图3,其示出了本发明一个实施例提供的消息计数装置的结构框架图,该消息计数装置可以应用于服务器中。该消息计数装置,包括:
请求接收模块301,用于在与终端建立连接后,接收终端发送的读取请求,读取请求中携带有用户标识,用户标识用于标识在终端中登录的用户;
信息获取模块302,用于获取用户的收听用户列表以及终端上次读取未读消息计数的上次读取时间,收听用户列表包括用户收听的至少一个收听用户;
时间获取模块303,用于获取每个收听用户最近一次发表消息的发表时间;
消息计数模块304,用于对于时间获取模块303获取到的发表时间在上次读取时间之后的收听用户,将所有收听用户在上次读取时间之后发表的消息的数目相加,得到本次的未读消息计数。
综上所述,本发明实施例提供的消息计数装置,通过获取用户的收听用户列表以及终端上次读取未读消息计数的上次读取时间,该收听用户列表包括用户收听的至少一个收听用户;获取每个收听用户最近一次发表消息的发表时间;对于发表时间在上次读取时间之后的收听用户,将所有收听用户在上次读取时间之后发表的消息的数目相加,得到本次的未读消息计数,可以筛选出在上次读取时间之后发表消息的收听用户,避免了对在上次读取时间之后未发表消息的收听用户的访问,解决了服务器获取每个收听用户发表的消息影响对未读消息的计数效率的问题,达到了提高对未读消息的计数效率的效果。
请参考图4,其示出了本发明再一实施例提供的消息计数装置的结构框架图,该消息计数装置可以应用于服务器中。该消息计数装置,包括:请求接收模块301、信息获取模块302、时间获取模块303和消息计数模块304。
请求接收模块301,用于在与终端建立连接后,接收终端发送的读取请求,读取请求中携带有用户标识,用户标识用于标识在终端中登录的用户;
信息获取模块302,用于获取用户的收听用户列表以及终端上次读取未读消息计数的上次读取时间,收听用户列表包括用户收听的至少一个收听用户;
时间获取模块303,用于获取每个收听用户最近一次发表消息的发表时间;
消息计数模块304,用于对于时间获取模块303获取到的发表时间在上次读取时间之后的收听用户,将所有收听用户在上次读取时间之后发表的消息的数目相加,得到本次的未读消息计数。
可选的,消息计数模块304,包括:
第一计数单元3041,用于若在上次读取时间之后首次统计未读消息计数,则筛选出发表时间在上次读取时间之后的收听用户,对筛选出的每个收听用户在上次读取时间之后所发表的消息的数目相加,得到本次的未读消息计数;
第二计数单元3042,用于若在上次读取之间之后非首次统计未读消息计数,则筛选出发表时间在上次统计时间之后的收听用户,对筛选出的每个收听用户在上次统计时间之后所发表的消息的数目相加,将相加得到的和加上上次未读消息计数,得到本次的未读消息计数。
可选的,本实施例提供的消息计数装置,还包括:
请求检测模块305,用于消息计数模块304对于发表时间在上次读取时间之后的收听用户,将所有收听用户在上次读取时间之后发表的消息的数目相加,得到本次的未读消息计数之后,检测终端是否在预定时长内再次发送过读取请求;
计数删除模块306,用于在请求检测模块305检测出终端未在预定时长内再次发送过读取请求时,对缓存的未读消息计数、上次读取时间和上次统计时间进行删除。
可选的,本实施例提供的消息计数装置,还包括:
计数读取模块307,计数删除模块306对缓存的未读消息计数、上次读取时间和上次统计时间进行删除之前,每隔预定时间读取未读消息计数;
次数检测模块308,用于检测计数读取模块307读取未读消息计数的读取次数是否达到读取阈值;
第一触发模块309,用于在次数检测模块308检测出读取次数达到读取阈值时,触发执行对缓存的未读消息计数、上次读取时间和上次统计时间进行删除的操作;
第二触发模块310,用于在次数检测模块308检测出读取次数未达到读取阈值时,触发执行每隔预定时间读取未读消息计数的操作。
可选的,本实施例提供的消息计数装置,还包括:
次数清空模块,用于在再次接收到终端发送的读取请求时,清空读取次数。
综上所述,本发明实施例提供的消息计数装置,通过获取用户的收听用户列表以及终端上次读取未读消息计数的上次读取时间,该收听用户列表包括用户收听的至少一个收听用户;获取每个收听用户最近一次发表消息的发表时间;对于发表时间在上次读取时间之后的收听用户,将所有收听用户在上次读取时间之后发表的消息的数目相加,得到本次的未读消息计数,可以筛选出在上次读取时间之后发表消息的收听用户,避免了对在上次读取时间之后未发表消息的收听用户的访问,解决了服务器获取每个收听用户发表的消息影响对未读消息的计数效率的问题,达到了提高对未读消息的计数效率的效果。
另外,通过每隔预定时间读取未读消息计数;检测读取未读消息计数的读取次数是否达到读取阈值;若检测出读取次数达到读取阈值,则对缓存的未读消息计数、上次读取时间和上次统计时间进行删除,可以在终端长时间不读取未读消息计数时,对未读消息计数、上次读取时间和上次统计时间进行清空,以节省服务器的缓存空间。
请参考图5,其示出了本发明一个实施例提供的服务器的结构示意图。所述服务器500包括中央处理单元(CPU)501、包括随机存取存储器(RAM)502和只读存储器(ROM)503的***存储器504,以及连接***存储器504和中央处理单元501的***总线505。所述服务器500还包括帮助计算机内的各个器件之间传输信息的基本输入/输出***(I/O***)506,和用于存储操作***513、应用程序514和其他程序模块515的大容量存储设备507。
所述基本输入/输出***506包括有用于显示信息的显示器508和用于用户输入信息的诸如鼠标、键盘之类的输入设备509。其中所述显示器508和输入设备509都通过连接到***总线505的输入输出控制器510连接到中央处理单元501。所述基本输入/输出***506还可以包括输入输出控制器510以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器510还提供输出到显示屏、打印机或其他类型的输出设备。
所述大容量存储设备507通过连接到***总线505的大容量存储控制器(未示出)连接到中央处理单元501。所述大容量存储设备507及其相关联的计算机可读介质为服务器500提供非易失性存储。也就是说,所述大容量存储设备507可以包括诸如硬盘或者CD-ROM驱动器之类的计算机可读介质(未示出)。
不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM、EEPROM、闪存或其他固态存储其技术,CD-ROM、DVD或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的***存储器504和大容量存储设备507可以统称为存储器。
根据本发明的各种实施例,所述服务器500还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即服务器500可以通过连接在所述***总线505上的网络接口单元511连接到网络512,或者说,也可以使用网络接口单元511来连接到其他类型的网络或远程计算机***(未示出)。
所述存储器还包括一个或者一个以上的程序,所述一个或者一个以上程序存储于存储器中,并被配置成由一个或者一个以***处理单元501执行。上述一个或者多个程序用于执行图1或图2对应的实施例提供的消息计数方法。
需要说明的是:上述实施例提供的消息计数装置在进行消息计数时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将消息计数装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的消息计数装置与消息计数方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (9)

1.一种消息计数方法,其特征在于,所述方法包括:
在与终端建立连接后,接收所述终端发送的读取请求,所述读取请求中携带有用户标识,所述用户标识用于标识在所述终端中登录的用户;
获取所述用户的收听用户列表以及所述终端上次读取未读消息计数的上次读取时间,所述收听用户列表包括所述用户收听的至少一个收听用户;
获取每个收听用户最近一次发表消息的发表时间;
若在所述上次读取时间之后首次统计未读消息计数,则筛选出发表时间在所述上次读取时间之后的收听用户,对筛选出的每个收听用户在所述上次读取时间之后所发表的消息的数目相加,得到本次的未读消息计数;
若在所述上次读取时间之后非首次统计未读消息计数,则筛选出发表时间在上次统计时间之后的收听用户,对筛选出的每个收听用户在所述上次统计时间之后所发表的消息的数目相加,将相加得到的和加上上次未读消息计数,得到本次的未读消息计数。
2.根据权利要求1所述的方法,其特征在于,所述得到本次的未读消息计数之后,还包括:
检测所述终端是否在预定时长内再次发送过所述读取请求;
若检测出所述终端未在所述预定时长内再次发送过所述读取请求,则对缓存的所述未读消息计数、所述上次读取时间和上次统计时间进行删除。
3.根据权利要求2所述的方法,其特征在于,所述对缓存的所述未读消息计数、所述上次读取时间和上次统计时间进行删除之前,还包括:
每隔预定时间读取所述未读消息计数;
检测读取所述未读消息计数的读取次数是否达到读取阈值;
若检测出所述读取次数达到所述读取阈值,则触发执行所述对缓存的所述未读消息计数、所述上次读取时间和上次统计时间进行删除的步骤;
若检测出所述读取次数未达到所述读取阈值,则触发执行所述每隔预定时间读取所述未读消息计数的步骤。
4.根据权利要求3所述的方法,其特征在于,所述方法,还包括:
若再次接收到所述终端发送的所述读取请求,则清空所述读取次数。
5.一种消息计数装置,其特征在于,所述装置包括:
请求接收模块,用于在与终端建立连接后,接收所述终端发送的读取请求,所述读取请求中携带有用户标识,所述用户标识用于标识在所述终端中登录的用户;
信息获取模块,用于获取所述用户的收听用户列表以及所述终端上次读取未读消息计数的上次读取时间,所述收听用户列表包括所述用户收听的至少一个收听用户;
时间获取模块,用于获取每个收听用户最近一次发表消息的发表时间;
消息计数模块,用于若在所述上次读取时间之后首次统计未读消息计数,则筛选出发表时间在所述上次读取时间之后的收听用户,对筛选出的每个收听用户在所述上次读取时间之后所发表的消息的数目相加,得到本次的未读消息计数;
所述消息计数模块,还用于若在所述上次读取时间之后非首次统计未读消息计数,则筛选出发表时间在上次统计时间之后的收听用户,对筛选出的每个收听用户在所述上次统计时间之后所发表的消息的数目相加,将相加得到的和加上上次未读消息计数,得到本次的未读消息计数。
6.根据权利要求5所述的装置,其特征在于,所述装置,还包括:
请求检测模块,用于所述消息计数模块对于发表时间在所述上次读取时间之后的收听用户,将所有所述收听用户在所述上次读取时间之后发表的消息的数目相加,得到本次的未读消息计数之后,检测所述终端是否在预定时长内再次发送过所述读取请求;
计数删除模块,用于在所述请求检测模块检测出所述终端未在所述预定时长内再次发送过所述读取请求时,对缓存的所述未读消息计数、所述上次读取时间和上次统计时间进行删除。
7.根据权利要求6所述的装置,其特征在于,所述装置,还包括:
计数读取模块,所述计数删除模块对缓存的所述未读消息计数、所述上次读取时间和上次统计时间进行删除之前,每隔预定时间读取所述未读消息计数;
次数检测模块,用于检测所述计数读取模块读取所述未读消息计数的读取次数是否达到读取阈值;
第一触发模块,用于在所述次数检测模块检测出所述读取次数达到所述读取阈值时,触发执行所述对缓存的所述未读消息计数、所述上次读取时间和上次统计时间进行删除的操作;
第二触发模块,用于在所述次数检测模块检测出所述读取次数未达到所述读取阈值时,触发执行所述每隔预定时间读取所述未读消息计数的操作。
8.根据权利要求7所述的装置,其特征在于,所述装置,还包括:
次数清空模块,用于在再次接收到所述终端发送的所述读取请求时,清空所述读取次数。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有程序,所述程序用于实现如权利要求1至4任一项所述的消息计数方法。
CN201410411954.1A 2014-08-20 2014-08-20 消息计数方法及装置 Active CN105376103B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410411954.1A CN105376103B (zh) 2014-08-20 2014-08-20 消息计数方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410411954.1A CN105376103B (zh) 2014-08-20 2014-08-20 消息计数方法及装置

Publications (2)

Publication Number Publication Date
CN105376103A CN105376103A (zh) 2016-03-02
CN105376103B true CN105376103B (zh) 2019-05-21

Family

ID=55377930

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410411954.1A Active CN105376103B (zh) 2014-08-20 2014-08-20 消息计数方法及装置

Country Status (1)

Country Link
CN (1) CN105376103B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106649779A (zh) * 2016-12-28 2017-05-10 北京奇艺世纪科技有限公司 一种针对消息***的数据统计方法及装置

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101083687A (zh) * 2006-05-31 2007-12-05 北京握奇数据***有限公司 显示短消息未读的方法及实现方法的电信智能卡及短消息
CN101272533A (zh) * 2008-05-06 2008-09-24 中兴通讯股份有限公司 一种通知用户未读消息数目的实现方法和处理方法
CN101409687A (zh) * 2008-11-25 2009-04-15 腾讯科技(深圳)有限公司 一种消息的提示方法及消息提示装置
CN102546474A (zh) * 2012-02-10 2012-07-04 明基电通有限公司 信息的自动回复方法及自动回复***
JP2012181663A (ja) * 2011-03-01 2012-09-20 Nagoya Institute Of Technology 既読/未読判定方法、送受信装置およびプログラム
CN102740274A (zh) * 2011-04-08 2012-10-17 腾讯科技(深圳)有限公司 多终端更新信息提醒同步的方法、装置及***
CN103310004A (zh) * 2013-06-28 2013-09-18 北京小米科技有限责任公司 未读消息数目显示方法、装置和设备
CN103369121A (zh) * 2012-04-09 2013-10-23 腾讯科技(深圳)有限公司 未读消息显示方法和装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101364885B1 (ko) * 2007-02-21 2014-02-19 엘지전자 주식회사 아이콘을 이용한 메시지 수신 표시 방법 및 단말기
US20130298006A1 (en) * 2011-07-20 2013-11-07 Ourgroup, Inc. System and method for providing software tools within an online platform for organizing groups and communicating with member clients of group

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101083687A (zh) * 2006-05-31 2007-12-05 北京握奇数据***有限公司 显示短消息未读的方法及实现方法的电信智能卡及短消息
CN101272533A (zh) * 2008-05-06 2008-09-24 中兴通讯股份有限公司 一种通知用户未读消息数目的实现方法和处理方法
CN101409687A (zh) * 2008-11-25 2009-04-15 腾讯科技(深圳)有限公司 一种消息的提示方法及消息提示装置
JP2012181663A (ja) * 2011-03-01 2012-09-20 Nagoya Institute Of Technology 既読/未読判定方法、送受信装置およびプログラム
CN102740274A (zh) * 2011-04-08 2012-10-17 腾讯科技(深圳)有限公司 多终端更新信息提醒同步的方法、装置及***
CN102546474A (zh) * 2012-02-10 2012-07-04 明基电通有限公司 信息的自动回复方法及自动回复***
CN103369121A (zh) * 2012-04-09 2013-10-23 腾讯科技(深圳)有限公司 未读消息显示方法和装置
CN103310004A (zh) * 2013-06-28 2013-09-18 北京小米科技有限责任公司 未读消息数目显示方法、装置和设备

Also Published As

Publication number Publication date
CN105376103A (zh) 2016-03-02

Similar Documents

Publication Publication Date Title
CN106548402B (zh) 资源转移监控方法及装置
CN110213068B (zh) 一种消息中间件的监控方法及相关设备
CN106357811B (zh) 一种备份数据的删除方法、装置及***
CN104468667B (zh) 消息推送方法、装置和服务器
CN104866296B (zh) 数据处理方法和装置
US20150169698A1 (en) Method and apparatus of determining time for sending information
CN105119763B (zh) 基于RIA的Web网管客户端的大数据快速导出方法及***
CN111522711B (zh) 一种数据监控处理***、方法、执行端、监控端及电子设备
CN104219069B (zh) 访问频率控制方法、装置及控制***
CN104239179B (zh) 一种终端及其实现应用管理的方法
CN105577772A (zh) 素材接收方法、素材上传方法及装置
CN104994080A (zh) 信息处理方法、***及电子设备
CN107809363A (zh) 一种网络信息传播控制方法和装置
CN106484791A (zh) 一种数据统计方法和装置
CN103595960B (zh) 一种监控关注信息推送方法和装置
CN105376103B (zh) 消息计数方法及装置
CN104184603B (zh) 一种用户状态统计方法、装置及***
CN108923967A (zh) 一种去重流量记录方法、装置、服务器及存储介质
CN104811418B (zh) 病毒检测的方法及装置
CN114385378A (zh) 物联网设备的活跃数据处理方法、装置及存储介质
CN106937241A (zh) 时序数据检测方法及装置
CN116546025B (zh) 一种基于云计算的边缘数据管理***
CN107819823A (zh) 一种信息处理方法、服务器及计算机可读存储介质
CN108830658B (zh) 信息推送的数据处理方法、装置、电子设备与存储介质
CN103631605A (zh) 信息发布方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant