CN115022274A - 未读消息数量统计方法、装置、计算机设备及存储介质 - Google Patents
未读消息数量统计方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN115022274A CN115022274A CN202210934292.0A CN202210934292A CN115022274A CN 115022274 A CN115022274 A CN 115022274A CN 202210934292 A CN202210934292 A CN 202210934292A CN 115022274 A CN115022274 A CN 115022274A
- Authority
- CN
- China
- Prior art keywords
- message
- session
- messages
- client
- current
- 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.)
- Granted
Links
Images
Abstract
本申请涉及一种未读消息数量统计方法、装置、计算机设备、存储介质和计算机程序产品。该方法包括:接收当前会话的新增消息;若当前会话的新增消息存在黑白名单设置,将当前会话中黑名单中的成员的群消息数量增加一,每个黑名单成员的个人消息数量增加一,若当前会话的新增消息存在白名单设置,将当前会话中白名单中的成员的群消息数量不变,每个白名单成员的个人消息数量减一;若当前会话的新增消息不存在黑白名单设置,将当前会话对应的群消息数量增加一,每个成员的个人消息数量不变;根据群消息数量及个人消息数量统计每个成员的未读消息数量。采用本方法能够快速统计未读消息的数量,减少服务器处理消息耗时,保证群成员接收消息的及时性。
Description
技术领域
本申请涉及通信技术领域,特别是涉及一种未读消息数量统计方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
随着智能手机的普及和网络速度和稳定性的大幅度提升,通过IM(即时通讯)进行沟通已经越来越普遍,而通过IM即时通讯进行沟通不仅相对于电话或者短信近乎于免费,而且生活或工作中大部分的好友都使用同一种即时通讯软件更加降低了沟通成本,在一个APP上即可完成和大部分人的沟通。
传统技术中,随着时间的延长,对于群消息会有大量的未读消息,如何显示群消息的未读消息的数量,成为急需要解决的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够快速统计未读消息的数量的未读消息数量统计方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供一种未读消息数量统计方法,应用于服务端,所述方法包括:
接收当前会话的新增消息;
若所述当前会话的所述新增消息存在黑名单设置,则将所述当前会话中黑名单中的成员的群消息数量增加一,每个黑名单成员的个人消息数量增加一;
若所述当前会话的所述新增消息存在白名单设置,则将所述当前会话中白名单中的成员的群消息数量不变,且每个白名单成员的个人消息数量减一;
若所述当前会话的所述新增消息不存在黑白名单设置,则将当前会话对应的群消息数量增加一,每个成员的个人消息数量不变;
根据所述群消息数量以及所述个人消息数量统计每个成员的未读消息数量。
在其中一个实施例中,所述方法还包括:
接收客户端发送的消息已读信息;
根据所述消息已读信息,修正所述个人消息数量为群消息数量。
在其中一个实施例中,所述方法还包括:
接收客户端发送的会话属性变更请求;
根据所述会话属性变更请求更新所述客户端对应的版本号;
当接收到客户端进入会话的消息后,发送所述会话中的成员的当前版本号至所述客户端,所述当前版本号用于与所述客户端本地存储的所述成员的本地版本号进行比较,以对所述本地版本号以及会话属性进行更新。
在其中一个实施例中,所述方法还包括:
接收客户端发送的消息前缀获取请求;
基于所述消息前缀获取请求生成服务端唯一标识,将所述服务端唯一标识发送至客户端,所述服务端唯一标识用于在所述客户端生成新的消息时,基于所述服务端唯一标识和客户端唯一标识生成所述新的消息的消息标识。
第二方面,本申请还提供一种未读消息数量统计方法,应用于客户端,所述方法包括:
接收服务器发送的各个会话对应的未读消息数量,所述未读消息数量是根据上述第一方面中任意一个实施例中未读消息数量统计方法统计得到;
将所述未读消息数量显示在会话列表的对应的会话处。
在其中一个实施例中,所述方法还包括:
进入会话,并拉取本地会话版本号;
从服务器获取到所述会话中的成员的当前版本号;
当所述本地会话版本号小于所述当前版本号时,从服务器获取到与所述当前版本号对应的会话属性,并更新本地会话版本号。
在其中一个实施例中,所述方法还包括:
发送消息前缀获取请求;
接收服务器反馈的与所述消息前缀获取请求对应的服务端唯一标识;
根据消息的数量生成客户端唯一标识;
基于所述服务端唯一标识和客户端唯一标识生成所述新的消息的消息标识。
第三方面,本申请还提供一种未读消息数量统计装置,所述装置包括:
第一接收模块,用于接收当前会话的新增消息;
消息数量更新模块,用于若所述当前会话的所述新增消息存在黑名单设置,则将所述当前会话中黑名单中的成员的群消息数量增加一,每个黑名单成员的个人消息数量增加一;若所述当前会话的所述新增消息存在白名单设置,则将所述当前会话中白名单中的成员的群消息数量不变,且每个白名单成员的个人消息数量减一;若所述当前会话的所述新增消息不存在黑白名单设置,则将当前会话对应的群消息数量增加一,每个成员的个人消息数量不变;
未读消息数量生成模块,用于根据所述群消息数量以及所述个人消息数量统计每个成员的未读消息数量。
第四方面,本申请还提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任意一个实施例中所述的方法的步骤。
第五方面,本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一个实施例中所述的方法的步骤。
上述未读消息数量统计方法、装置、计算机设备、存储介质和计算机程序产品,通过群消息数量以及个人消息数量来统计每个成员的未读消息数量,这样不需要高频的数据库写入行为,缩短消息发送时长,提高发送速度,此外,结合黑白名单可以统计每个成员的未读消息数量,从而减少群每发一条新消息引发的更新成本较高(一条消息需要引发一万个用户的未读数记录+1),减少服务器处理消息需要的耗时,保证群成员接收消息的及时性。
附图说明
图1为一个实施例中未读消息数量统计方法的应用环境图;
图2为一个实施例中未读消息数量统计方法的流程示意图;
图3为另一个实施例中未读消息数量统计方法的流程示意图;
图4为再一个实施例中未读消息数量统计方法的流程示意图;
图5为一个实施例中未读消息数量统计装置的结构框图;
图6为另一个实施例中未读消息数量统计装置的结构框图;
图7为一个实施例中计算机设备的内部结构图;
图8为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的未读消息数量统计方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他网络服务器上。
其中,服务器104接收终端102发送的新增消息,并确定新增消息所属的会话,这样若当前会话的新增消息存在黑名单设置,则将当前会话中黑名单中的成员的群消息数量增加一,每个黑名单成员的个人消息数量增加一,若当前会话的新增消息存在白名单设置,则将白名单中的成员的群消息数量不变,且每个白名单成员的个人消息数量减一;若当前会话的新增消息不存在黑白名单设置,则将当前会话对应的群消息数量增加一,每个成员的个人消息数量不变;根据群消息数量以及个人消息数量统计每个成员的未读消息数量。
上述未读消息统计方法,通过群消息数量以及个人消息数量来统计每个成员的未读消息数量,这样不需要高频的数据库写入行为,缩短消息发送时长,提高发送速度,此外,结合黑白名单可以统计每个成员的未读消息数量,从而减少群每发一条新消息引发的更新成本较高(一条消息需要引发一万个用户的未读数记录+1),减少服务器处理消息需要的耗时,保证群成员接收消息的及时性。
其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种未读消息数量统计方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
S202:接收当前会话的新增消息。
具体地,新增消息是指终端发送的新的消息,例如终端A与其他终端进行会话时,需要先将新增消息发送至服务器,以使得服务器将新增消息转发至对应的其他终端。
具体地,服务器接收到新增消息后,根据新增消息所携带的会话信息来确定新增消息所属的当前会话,并将新增消息存储至服务器对应的会话的会话列表中。
S204:若当前会话的新增消息存在黑名单设置,则将当前会话中黑名单中的成员的群消息数量增加一,每个黑名单成员的个人消息数量增加一;若当前会话的新增消息存在白名单设置,则将当前会话中白名单中的成员的群消息数量不变,且每个白名单成员的个人消息数量减一。
S206:若当前会话的新增消息不存在黑白名单设置,则将当前会话对应的群消息数量增加一,每个成员的个人消息数量不变。
其中在传统的方式中,每一条群发消息都会引起会话中的用户的未读记录的数量的更新,这样服务器处理消息需要的时间较长,也就是说一点有用户在该会话中发送一条群消息,则服务器需要为每位群成员的未读数执行加一操作,而本申请中,引入了群消息数量和个人消息数量,两个统计数量,若当前会话的新增消息存在新增消息,则群消息数量加一,个人消息数量不变,则两者作差就是对应的用户的未读消息的数量,这样只操作群消息数量一个即可,减少了操作量。
若是引入了黑白名单的设置,也即若当前会话的新增消息存在黑名单时,则分开统计,即将当前会话中黑名单中的成员的群消息数量增加一,每个黑名单成员的个人消息数量增加一,若当前会话的新增消息存在白名单设置,则将当前会话中白名单中的成员的群消息数量不变,且每个白名单成员的个人消息数量减一。
具体地,结合图3所示,群消息数量可以通过群消息基数表来表征,这样每个群存在一条记录,该记录用来记录一个群自创建后累计消息总数(白名单非空消息除外),数据更新方式为每条新增消息累加一。成员的个人消息数量则可以通过群消息基数快照表来表征,其中每个群里的每一个用户对应一条记录,该记录是用来记录每个群成员已读消息快照,群成员已读消息时记录群消息基数快照。其中群消息基数快照表以及群消息基数表中可以存在计数字段,用来对群消息进行计数。
其中,黑名单消息是指一条群消息,若消息黑名单非空,则这条消息仅对黑名单内用户不可见,白名单消息是指一条群消息,若消息白名单非空,则这条消息仅对白名单内用户可见。
具体地,结合图3所示,其中当存在新增消息时,先判断群消息白名单是否为空,若是非空,则对白名单成员执行群消息基数快照表的计数字段减一操作,若是为空,则执行群消息基数表的计数字段加一操作。
继续判断群消息黑名单是否为空,若是非空,则对黑名单内成员执行群消息基数快照表的计数字段加一操作,保证这些成员消息未读数不变。
S208:根据群消息数量以及个人消息数量统计每个成员的未读消息数量。
具体地,服务器查询群消息数量,例如读取群消息基数表计数字段值V1,以及查询个人消息数量,流读取群消息基数快招标的计数字段V2,这样通过V1-V2即可以得到V3,也即每个成员的未读消息数量。
上述未读消息统计方法,通过群消息数量以及个人消息数量来统计每个成员的未读消息数量,这样不需要高频的数据库写入行为,缩短消息发送时长,提高发送速度,此外,结合黑白名单可以统计每个成员的未读消息数量,从而减少群每发一条新消息引发的更新成本较高(一条消息需要引发一万个用户的未读数记录+1),减少服务器处理消息需要的耗时,保证群成员接收消息的及时性。
在其中一个实施例中,方法还包括:接收客户端发送的消息已读信息;根据消息已读信息,修正个人消息数量为群消息数量。
具体地,消息已读信息是终端发送至服务器的,即终端读取了未读消息,并根据未读消息的读取数量发送至服务器,在其他的实施例中,可以确定未读消息的最新时间戳,这样将该最新时间戳发送至服务器,服务器读取群消息基数表的计数字段值V1,并将群消息基数快照表的对应的成员的计数字段值设置为V1,从而该成员的未读消息数量为零。
上述实施例中,用户在群组里发送一条消息,服务器会通过记录群成员与消息基数偏移量的方式来记录每位群成员的未读数,以降低在高频群消息场景下频繁写库行为,提高发送速度。
在其中一个实施例中,还引入了版本号更新步骤,该版本号更新步骤包括:接收客户端发送的会话属性变更请求;根据会话属性变更请求更新客户端对应的版本号;当接收到客户端进入会话的消息后,发送会话中的成员的当前版本号至客户端,当前版本号用于与客户端本地存储的成员的本地版本号进行比较,以对本地版本号以及会话属性进行更新。
具体地,会话属性包括成员的自身信息,例如头像、昵称、头像框、用户等级、用户标签,比如修改昵称和/或修改头像等等。传统技术中,服务器在每次转发用户发送的消息时,在消息体带上会话的详细信息,比如最新的头像,昵称等其他信息。接收方根据消息体带过来的会话详情展示发送方会话信息,比如头像、昵称等,这样每次发消息都必须携带完整的会话详情信息,浪费带宽和存储空间。如果没有新消息交互,会话更新就会滞后不及时。
为了解决上述问题,避免消息中携带过多会话信息,及时刷新用户会话信息,引入会话版本号机制。会话版本号表示一个会话的状态编号,用户每次信息变更都会更新他的会话版本号。例如,用户A注册后,会话版本号是1,随后更新了头像、昵称,此时会话版本号就变成了2,再后来用户A又修改了昵称,这时会话版本号就变成了3;也就是说用户A每次信息变更时,会话版本号都会增加1。
为了方便理解,以以下例子进行说明:客户端在发送消息时,会将自己的会话版本号塞入消息体;客户端在启动或进入私聊页面时也会实时查询用户的会话版本号。也就是说客户端收到实时消息或进入会话列表、私聊页面时,都能获取到服务器中存储真实的会话版本号。客户端通过对比本地存储的会话版本号及实时获取的会话版本号,来确定一个会话信息是否需要更新,当本地存储的会话版本号较低时,就通过会话信息接口查询会话信息,并更新本地会话版本号。
具体地,客户端启动通过会话配置接口获取到自己当前最新的版本号,在进入私聊通过用户会话信息接口拉取当前会话的版本号,如果当前本地存储的版本号小于远端真实的会话版本号,则异步从服务器同步最新版本信息,在后续发送单聊消息时带上发送者的版本号,服务器发现某个用户自己的会话版本号发生变更,也会发送消息通知该用户刷新自己的版本号。
上述实施例中,解决会话信息变更后带来的其他用户更新滞后,通过给每个会话设置一个更新版本号,每一次更新都会引发一次版本号自增,如果其他用户本地存储的版本号小于改版本号,则会引发自动更新。
在其中一个实施例中,还引入了消息标识生成步骤,该消息标识生成步骤包括:接收客户端发送的消息前缀获取请求;基于消息前缀获取请求生成服务器唯一标识,将服务器唯一标识发送至客户端,服务器唯一标识用于在客户端生成新的消息时,基于服务器唯一标识和客户端唯一标识生成新的消息的消息标识。
具体地,消息标识是每一条消息的唯一标识,其长度可以控制在20位字符左右,同时能够保证消息标识的唯一性。
为了实现上述目标,通过服务器唯一标识和客户端唯一标识一起来生成消息标识,以保证消息的全局唯一。
具体地,当有请求消息标识前缀时,服务器基于消息标识唯一生成规则,生成一串唯一数字,并转换成16进制字符串返回给客户端,此时,这个字符串服务器全局唯一。客户端启动时,开启消息计数器 用来记录客户端自身发送了多少条消息,并在发送消息时将消息id前缀与消息计数器组合,作为客户端消息标识。
为了方便理解,给出一个详细的实施例:具体地,客户端启动时通过接口向服务器拉取一个全局唯一的字符串,作为客户端消息标识的前缀(imClientId),并存储下来。客户端发送消息时,拼接消息标识前缀和本地消息计数器,作为全局唯一的消息标识。
其中服务器唯一字符串生成规则包括:根据当前时间戳等效值T1(时间戳减去一个特定时间,如2015-01-01),右移24位;然后和当前服务ip等效数字int数值做或运算;然后和当前时间戳递增(后8位有效的int值)做或运算,得到的一个数字,再转换成16进制字符串,这样也即得到了服务器唯一标识。
在一个实施例中,如图4所示,提供了一种未读消息数量统计方法,以该方法应用于图1中的安装于终端的客户端为例进行说明,包括以下步骤:
S402:接收服务器发送的各个会话对应的未读消息数量,未读消息数量是根据上述任意一个实施例中的方法统计得到。
具体地,未读消息数量是服务器统计得到的,具体地,服务器接收当前会话的新增消息,若当前会话的新增消息存在黑名单设置,则将当前会话中黑名单中的成员的群消息数量增加一,每个黑名单成员的个人消息数量增加一,若当前会话的新增消息存在白名单设置,则将当前会话中白名单中的成员的群消息数量不变,且每个白名单成员的个人消息数量减一,若当前会话的新增消息不存在黑白名单设置,则将当前会话对应的群消息数量增加一,每个成员的个人消息数量不变,这样根据群消息数量以及个人消息数量统计每个成员的未读消息数量,具体的限定可以参见上文,在此不再赘述。
S404:将未读消息数量显示在会话列表的对应的会话处。
具体地,当客户端打开对应的聊天列表时,客户端将每一会话的未读消息的数量进行显示,例如显示在会话列表的对应的会话处,在其他的实施例中,客户端通过红点的方式进行显示,例如当未读消息数量大于或等于一时,则在会话列表的对应的会话处显示红点,当用户点开对应的会话时,则在一定的位置显示对应的未读消息的数量。
上述实施例中,通过群消息数量以及个人消息数量来统计每个成员的未读消息数量,这样不需要高频的数据库写入行为,缩短消息发送时长,提高发送速度,此外,结合黑白名单可以统计每个成员的未读消息数量,从而减少群每发一条新消息引发的更新成本较高(一条消息需要引发一万个用户的未读数记录+1),减少服务器处理消息需要的耗时,保证群成员接收消息的及时性,群消息基数及基数快照的方式 极大降低了群消息未读数的更新频率。
在其中一个实施例中,还引入了版本号更新步骤,该版本号更新步骤包括:进入会话,并拉取本地会话版本号;从服务器获取到会话中的成员的当前版本号;当本地会话版本号小于当前版本号时,从服务器获取到与当前版本号对应的会话属性,并更新本地会话版本号。
具体地,客户端在发送消息时,会将自己的会话版本号塞入消息体;客户端在启动或进入私聊页面时也会实时查询用户的会话版本号。也就是说客户端收到实时消息或进入会话列表、私聊页面时,都能获取到服务器中存储真实的会话版本号。客户端通过对比本地存储的会话版本号及实时获取的会话版本号,来确定一个会话信息是否需要更新,当本地存储的会话版本号较低时,就通过会话信息接口查询会话信息,并更新本地会话版本号。
具体地,客户端启动通过会话配置接口获取到自己当前最新的版本号,在进入私聊通过用户会话信息接口拉取当前会话的版本号,如果当前本地存储的版本号小于远端真实的会话版本号,则异步从服务器同步最新版本信息,在后续发送单聊消息时带上发送者的版本号,服务器发现某个用户自己的会话版本号发生变更,也会发送消息通知该用户刷新自己的版本号。
上述实施例中,解决会话信息变更后带来的其他用户更新滞后,通过给每个会话设置一个更新版本号,每一次更新都会引发一次版本号自增,如果其他用户本地存储的版本号小于改版本号,则会引发自动更新,且仅通过版本号进行判断,不需要每次消息都携带有大量的会话属性信息,避免会话信息冗余、减少消息体大小,降低通信带宽成本。
在其中一个实施例中,还引入了消息标识生成步骤,该消息标识生成步骤包括:发送消息前缀获取请求;接收服务器反馈的与消息前缀获取请求对应的服务器唯一标识;根据消息的数量生成客户端唯一标识;基于服务器唯一标识和客户端唯一标识生成新的消息的消息标识。
具体地,客户端启动时通过接口向服务器拉取一个全局唯一的字符串,作为客户端消息标识的前缀(imClientId),并存储下来。客户端发送消息时,拼接消息标识前缀和本地消息计数器,作为全局唯一的消息标识。
其中服务器唯一字符串生成规则包括:根据当前时间戳等效值T1(时间戳减去一个特定时间,如2015-01-01),右移24位;然后和当前服务ip等效数字int数值做或运算;然后和当前时间戳递增(后8位有效的int值)做或运算,得到的一个数字,再转换成16进制字符串,这样也即得到了服务器唯一标识。
上述实施例中,通过客户端与服务端结合的方式,在保证消息表啊是唯一的情况下,极大缩短了消息标识字段长度,减少了存储成本及通信带宽成本。
应该理解的是,虽然如上的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的未读消息数量统计方法的未读消息数量统计装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个未读消息数量统计装置实施例中的具体限定可以参见上文中对于未读消息数量统计方法的限定,在此不再赘述。
在一个实施例中,如图5所示,提供了一种未读消息数量统计装置,包括:第一接收模块501、消息数量更新模块502和未读消息数量生成模块503,其中:
第一接收模块501,用于接收当前会话的新增消息;
消息数量更新模块502,用于若当前会话的新增消息存在黑名单设置,则将当前会话中黑名单中的成员的群消息数量增加一,每个黑名单成员的个人消息数量增加一,若当前会话的新增消息存在白名单设置,则将当前会话中白名单中的成员的群消息数量不变,且每个白名单成员的个人消息数量减一;若当前会话的新增消息不存在黑白名单设置,则将当前会话对应的群消息数量增加一,每个成员的个人消息数量不变;
未读消息数量生成模块503,用于根据群消息数量以及个人消息数量统计每个成员的未读消息数量。
在其中一个实施例中,上述未读消息数量统计装置还包括:
第二接收模块,用于接收客户端发送的消息已读信息;
修正模块,用于根据消息已读信息,修正个人消息数量为群消息数量。
在其中一个实施例中,上述未读消息数量统计装置还包括:
第三接收模块,用于接收客户端发送的会话属性变更请求;
第一更新模块,用于根据会话属性变更请求更新客户端对应的版本号;当接收到客户端进入会话的消息后,发送会话中的成员的当前版本号至客户端,当前版本号用于与客户端本地存储的成员的本地版本号进行比较,以对本地版本号以及会话属性进行更新。
在其中一个实施例中,上述未读消息数量统计装置还包括:
第四接收模块,用于接收客户端发送的消息前缀获取请求;
第一标识生成模块,用于基于消息前缀获取请求生成服务器唯一标识,将服务器唯一标识发送至客户端,服务器唯一标识用于在客户端生成新的消息时,基于服务器唯一标识和客户端唯一标识生成新的消息的消息标识。
在一个实施例中,如图6所示,提供了一种未读消息数量统计装置,包括:第五接收模块601和显示模块602,其中:
第五接收模块601,用于接收服务器发送的各个会话对应的未读消息数量,未读消息数量是根据上述任意一个实施例中的方法统计得到;
显示模块602,用于将未读消息数量显示在会话列表的对应的会话处。
在其中一个实施例中,上述未读消息数量统计装置还包括:
拉取模块,用于进入会话,并拉取本地会话版本号;
版本号获取模块,用于从服务器获取到会话中的成员的当前版本号;
第二更新模块,用于当本地会话版本号小于当前版本号时,从服务器获取到与当前版本号对应的会话属性,并更新本地会话版本号。
在其中一个实施例中,上述未读消息数量统计装置还包括:
发送模块,用于发送消息前缀获取请求;
第六接收模块,用于接收服务器反馈的与消息前缀获取请求对应的服务器唯一标识;
客户端唯一标识生成模块,用于根据消息的数量生成客户端唯一标识;
第二标识生成模块,用于基于服务器唯一标识和客户端唯一标识生成新的消息的消息标识。
上述未读消息数量统计装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储群消息数量以及个人消息数量。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种未读消息数量统计方法。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种未读消息数量统计方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图7和图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:接收当前会话的新增消息;若当前会话的新增消息存在黑名单设置,则将当前会话中黑名单中的成员的群消息数量增加一,每个黑名单成员的个人消息数量增加一,若当前会话的新增消息存在白名单设置,则将当前会话中白名单中的成员的群消息数量不变,且每个白名单成员的个人消息数量减一;若当前会话的新增消息不存在黑白名单设置,则将当前会话对应的群消息数量增加一,每个成员的个人消息数量不变;根据群消息数量以及个人消息数量统计每个成员的未读消息数量。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:接收客户端发送的消息已读信息;根据消息已读信息,修正个人消息数量为群消息数量。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:接收客户端发送的会话属性变更请求;根据会话属性变更请求更新客户端对应的版本号;当接收到客户端进入会话的消息后,发送会话中的成员的当前版本号至客户端,当前版本号用于与客户端本地存储的成员的本地版本号进行比较,以对本地版本号以及会话属性进行更新。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:接收客户端发送的消息前缀获取请求;基于消息前缀获取请求生成服务器唯一标识,将服务器唯一标识发送至客户端,服务器唯一标识用于在客户端生成新的消息时,基于服务器唯一标识和客户端唯一标识生成新的消息的消息标识。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:接收服务器发送的各个会话对应的未读消息数量,未读消息数量是根据上述任意一个实施例中的方法统计得到;将未读消息数量显示在会话列表的对应的会话处。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:进入会话,并拉取本地会话版本号;从服务器获取到会话中的成员的当前版本号;当本地会话版本号小于当前版本号时,从服务器获取到与当前版本号对应的会话属性,并更新本地会话版本号。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:发送消息前缀获取请求;接收服务器反馈的与消息前缀获取请求对应的服务器唯一标识;根据消息的数量生成客户端唯一标识;基于服务器唯一标识和客户端唯一标识生成新的消息的消息标识。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:接收当前会话的新增消息;若当前会话的新增消息存在黑名单设置,则将当前会话中黑名单中的成员的群消息数量增加一,每个黑名单成员的个人消息数量增加一,若当前会话的新增消息存在白名单设置,则将当前会话中白名单中的成员的群消息数量不变,且每个白名单成员的个人消息数量减一;若当前会话的新增消息不存在黑白名单设置,则将当前会话对应的群消息数量增加一,每个成员的个人消息数量不变;根据群消息数量以及个人消息数量统计每个成员的未读消息数量。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:接收客户端发送的消息已读信息;根据消息已读信息,修正个人消息数量为群消息数量。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:接收客户端发送的会话属性变更请求;根据会话属性变更请求更新客户端对应的版本号;当接收到客户端进入会话的消息后,发送会话中的成员的当前版本号至客户端,当前版本号用于与客户端本地存储的成员的本地版本号进行比较,以对本地版本号以及会话属性进行更新。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:接收客户端发送的消息前缀获取请求;基于消息前缀获取请求生成服务器唯一标识,将服务器唯一标识发送至客户端,服务器唯一标识用于在客户端生成新的消息时,基于服务器唯一标识和客户端唯一标识生成新的消息的消息标识。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:接收服务器发送的各个会话对应的未读消息数量,未读消息数量是根据上述任意一个实施例中的方法统计得到;将未读消息数量显示在会话列表的对应的会话处。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:进入会话,并拉取本地会话版本号;从服务器获取到会话中的成员的当前版本号;当本地会话版本号小于当前版本号时,从服务器获取到与当前版本号对应的会话属性,并更新本地会话版本号。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:发送消息前缀获取请求;接收服务器反馈的与消息前缀获取请求对应的服务器唯一标识;根据消息的数量生成客户端唯一标识;基于服务器唯一标识和客户端唯一标识生成新的消息的消息标识。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:接收当前会话的新增消息;若当前会话的新增消息存在黑名单设置,则将当前会话中黑名单中的成员的群消息数量增加一,每个黑名单成员的个人消息数量增加一,若当前会话的新增消息存在白名单设置,则将当前会话中白名单中的成员的群消息数量不变,且每个白名单成员的个人消息数量减一;若当前会话的新增消息不存在黑白名单设置,则将当前会话对应的群消息数量增加一,每个成员的个人消息数量不变;根据群消息数量以及个人消息数量统计每个成员的未读消息数量。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:接收客户端发送的消息已读信息;根据消息已读信息,修正个人消息数量为群消息数量。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:接收客户端发送的会话属性变更请求;根据会话属性变更请求更新客户端对应的版本号;当接收到客户端进入会话的消息后,发送会话中的成员的当前版本号至客户端,当前版本号用于与客户端本地存储的成员的本地版本号进行比较,以对本地版本号以及会话属性进行更新。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:接收客户端发送的消息前缀获取请求;基于消息前缀获取请求生成服务器唯一标识,将服务器唯一标识发送至客户端,服务器唯一标识用于在客户端生成新的消息时,基于服务器唯一标识和客户端唯一标识生成新的消息的消息标识。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:接收服务器发送的各个会话对应的未读消息数量,未读消息数量是根据上述任意一个实施例中的方法统计得到;将未读消息数量显示在会话列表的对应的会话处。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:进入会话,并拉取本地会话版本号;从服务器获取到会话中的成员的当前版本号;当本地会话版本号小于当前版本号时,从服务器获取到与当前版本号对应的会话属性,并更新本地会话版本号。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:发送消息前缀获取请求;接收服务器反馈的与消息前缀获取请求对应的服务器唯一标识;根据消息的数量生成客户端唯一标识;基于服务器唯一标识和客户端唯一标识生成新的消息的消息标识。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (10)
1.一种未读消息数量统计方法,其特征在于,应用于服务端,所述方法包括:
接收当前会话的新增消息;
若所述当前会话的所述新增消息存在黑名单设置,则将所述当前会话中黑名单中的成员的群消息数量增加一,每个黑名单成员的个人消息数量增加一;
若所述当前会话的所述新增消息存在白名单设置,则将所述当前会话中白名单中的成员的群消息数量不变,且每个白名单成员的个人消息数量减一;
若所述当前会话的所述新增消息不存在黑白名单设置,则将当前会话对应的群消息数量增加一,每个成员的个人消息数量不变;
根据所述群消息数量以及所述个人消息数量统计每个成员的未读消息数量。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收客户端发送的消息已读信息;
根据所述消息已读信息,修正所述个人消息数量为群消息数量。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
接收客户端发送的会话属性变更请求;
根据所述会话属性变更请求更新所述客户端对应的版本号;
当接收到客户端进入会话的消息后,发送所述会话中的成员的当前版本号至所述客户端,所述当前版本号用于与所述客户端本地存储的所述成员的本地版本号进行比较,以对所述本地版本号以及会话属性进行更新。
4.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
接收客户端发送的消息前缀获取请求;
基于所述消息前缀获取请求生成服务端唯一标识,将所述服务端唯一标识发送至客户端,所述服务端唯一标识用于在所述客户端生成新的消息时,基于所述服务端唯一标识和客户端唯一标识生成所述新的消息的消息标识。
5.一种未读消息数量统计方法,其特征在于,应用于客户端,所述方法包括:
接收服务器发送的各个会话对应的未读消息数量,所述未读消息数量是根据权利要求1至4中任意一项所述的方法统计得到;
将所述未读消息数量显示在会话列表的对应的会话处。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
进入会话,并拉取本地会话版本号;
从服务器获取到所述会话中的成员的当前版本号;
当所述本地会话版本号小于所述当前版本号时,从服务器获取到与所述当前版本号对应的会话属性,并更新本地会话版本号。
7.根据权利要求5所述的方法,其特征在于,所述方法还包括:
发送消息前缀获取请求;
接收服务器反馈的与所述消息前缀获取请求对应的服务端唯一标识;
根据消息的数量生成客户端唯一标识;
基于所述服务端唯一标识和客户端唯一标识生成所述新的消息的消息标识。
8.一种未读消息数量统计装置,其特征在于,所述装置包括:
第一接收模块,用于接收当前会话的新增消息;
消息数量更新模块,用于若所述当前会话的所述新增消息存在黑名单设置,则将所述当前会话中黑名单中的成员的群消息数量增加一,每个黑名单成员的个人消息数量增加一;若所述当前会话的所述新增消息存在白名单设置,则将所述当前会话中白名单中的成员的群消息数量不变,且每个白名单成员的个人消息数量减一;若所述当前会话的所述新增消息不存在黑白名单设置,则将当前会话对应的群消息数量增加一,每个成员的个人消息数量不变;
未读消息数量生成模块,用于根据所述群消息数量以及所述个人消息数量统计每个成员的未读消息数量。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4或5至7中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4或5至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210934292.0A CN115022274B (zh) | 2022-08-04 | 2022-08-04 | 未读消息数量统计方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210934292.0A CN115022274B (zh) | 2022-08-04 | 2022-08-04 | 未读消息数量统计方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115022274A true CN115022274A (zh) | 2022-09-06 |
CN115022274B CN115022274B (zh) | 2022-10-21 |
Family
ID=83066315
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210934292.0A Active CN115022274B (zh) | 2022-08-04 | 2022-08-04 | 未读消息数量统计方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115022274B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140310365A1 (en) * | 2012-01-31 | 2014-10-16 | Global Relay Communications Inc. | System and Method for Tracking Messages in a Messaging Service |
CN108494972A (zh) * | 2018-04-18 | 2018-09-04 | Oppo广东移动通信有限公司 | 一种消息提醒方法、消息提醒装置及移动终端 |
CN109495376A (zh) * | 2018-11-19 | 2019-03-19 | 努比亚技术有限公司 | 群消息筛选方法、移动终端及计算机可读存储介质 |
CN109729005A (zh) * | 2019-01-02 | 2019-05-07 | 腾讯科技(深圳)有限公司 | 消息处理方法、装置、计算机设备和存储介质 |
US10992633B1 (en) * | 2018-12-31 | 2021-04-27 | Whatsapp Inc. | Methods and systems for determining an unread message count |
CN113179206A (zh) * | 2021-04-09 | 2021-07-27 | 北京达佳互联信息技术有限公司 | 会话显示方法、会话获取方法、装置、设备、系统及介质 |
CN113485857A (zh) * | 2021-09-07 | 2021-10-08 | 天津中新智冠信息技术有限公司 | 消息处理方法、装置、电子设备及存储介质 |
-
2022
- 2022-08-04 CN CN202210934292.0A patent/CN115022274B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140310365A1 (en) * | 2012-01-31 | 2014-10-16 | Global Relay Communications Inc. | System and Method for Tracking Messages in a Messaging Service |
CN108494972A (zh) * | 2018-04-18 | 2018-09-04 | Oppo广东移动通信有限公司 | 一种消息提醒方法、消息提醒装置及移动终端 |
CN109495376A (zh) * | 2018-11-19 | 2019-03-19 | 努比亚技术有限公司 | 群消息筛选方法、移动终端及计算机可读存储介质 |
US10992633B1 (en) * | 2018-12-31 | 2021-04-27 | Whatsapp Inc. | Methods and systems for determining an unread message count |
CN109729005A (zh) * | 2019-01-02 | 2019-05-07 | 腾讯科技(深圳)有限公司 | 消息处理方法、装置、计算机设备和存储介质 |
CN113179206A (zh) * | 2021-04-09 | 2021-07-27 | 北京达佳互联信息技术有限公司 | 会话显示方法、会话获取方法、装置、设备、系统及介质 |
CN113485857A (zh) * | 2021-09-07 | 2021-10-08 | 天津中新智冠信息技术有限公司 | 消息处理方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115022274B (zh) | 2022-10-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10439972B1 (en) | Apparatus and method for maintaining a message thread with opt-in permanence for entries | |
US10200813B1 (en) | Geo-location based event gallery | |
US8291018B2 (en) | Methods, apparatuses, and computer program products for providing activity coordination services | |
KR101131797B1 (ko) | 로컬 및 원격 소셜 정보의 집계된 뷰 | |
CN108494571B (zh) | 发起预约会议的方法、装置及系统 | |
CN108432200B (zh) | 用于保护和控制对私密个人信息的访问的方法 | |
KR20210040473A (ko) | 엔트리들을 위한 옵트-인 영속성을 갖는 메시지 스레드를 유지하는 장치 및 방법 | |
US10461934B2 (en) | Authentication-based message display method and communication terminal thereof | |
CN113868446A (zh) | 一种页面显示方法、装置、设备及存储介质 | |
CN111803953A (zh) | 图像处理方法、装置、计算机设备和计算机可读存储介质 | |
JP2021120880A (ja) | サーバ、情報処理方法、プログラム | |
JP2013118612A (ja) | 移動通信端末の画面キャプチャー方法 | |
CN110798392A (zh) | 群消息状态显示方法、装置、系统、电子设备及移动终端 | |
CN108053241B (zh) | 数据分析方法、装置及计算机可读存储介质 | |
CN104396341B (zh) | 支持联系提醒的系统和方法 | |
CN115022274B (zh) | 未读消息数量统计方法、装置、计算机设备及存储介质 | |
CN107391100B (zh) | 一种支持多语言账单的配置文件生成方法及装置 | |
CN111046206A (zh) | 头像列表展示方法、装置、电子设备及存储介质 | |
CN114500434A (zh) | 通讯消息的聚合方法及装置 | |
JP2006018390A (ja) | 携帯電話や携行端末へのニュース情報提供方法 | |
CN112838977B (zh) | 数据统计方法、装置、计算机设备和存储介质 | |
US11605464B2 (en) | Systems and methods for machine learning-based state prediction and visualization | |
CN112073174B (zh) | 通讯账号解密方法、装置、设备、存储介质及信息交互系统 | |
CN103139050A (zh) | 关系圈类产品的信息更新提示方法、系统及装置 | |
US20230058406A1 (en) | System for managing subscriber and project updates using a networked project communication system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | 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 |