CN114338255B - 群组管理方法及装置 - Google Patents
群组管理方法及装置 Download PDFInfo
- Publication number
- CN114338255B CN114338255B CN202210051268.2A CN202210051268A CN114338255B CN 114338255 B CN114338255 B CN 114338255B CN 202210051268 A CN202210051268 A CN 202210051268A CN 114338255 B CN114338255 B CN 114338255B
- Authority
- CN
- China
- Prior art keywords
- group
- target
- message
- term
- record
- 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
Links
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本申请提供一种群组管理方法及装置,该方法包括:接收服务器发送的群组成员游标信息;所述群组成员游标信息用于指示目标群组中目标群组成员的最大已读消息ID;基于所述群组成员游标信息,将所述目标群组中的目标消息标记为所述目标群组成员已读;其中,所述目标消息为所述电子设备发送的、且消息ID小于或者等于所述最大已读消息ID的群组消息。本申请提供的群组管理方法及装置,用于在客户端本地对群组成员的管理和群组消息已读未读状态及数量的计算,降低服务器的计算压力。
Description
技术领域
本申请涉及群组消息通知管理领域,尤其涉及一种群组管理方法及装置。
背景技术
随着互联网技术的发展,通过群组聊天功能与其他群组成员进行多人在线聊天,能够极大的提高工作效率。针对群组成员在群组中发送的消息的已读未读状态的更新,在相关技术中,其他群组成员阅读消息后,服务器会计算当前已读群组成员数量和该消息的可见群组成员总数,并展示在群组成员的群组聊天界面上。群组成员也可以通过点击消息的角标,触发电子设备向服务器查询已读和未读消息人员列表。
然而,这样的消息状态更新方法,所有数据的计算均通过服务器进行,给服务器带来很大的计算压力,使得服务器在高并发下的性能降低,导致消息状态的更新不及时,信息展示有误等问题。
发明内容
本申请的目的是提供一种群组管理方法及装置,用于在客户端本地对群组成员的管理和群组消息已读未读状态及数量的计算,降低服务器的计算压力。
本申请提供一种群组管理方法,应用于电子设备,包括:接收服务器发送的群组成员游标信息;所述群组成员游标信息用于指示目标群组中目标群组成员的最大已读消息ID;基于所述群组成员游标信息,将所述目标群组中的目标消息标记为所述目标群组成员已读;其中,所述目标消息为所述电子设备发送的、且消息ID小于或者等于所述最大已读消息ID的群组消息。
可选地,所述接收服务器发送的群组成员游标信息之前,所述方法还包括:向所述服务器发送所述目标消息;接收所述服务器反馈的发送成功信息;所述发送成功信息包括:第一群组termID;所述第一群组termID为所述服务器向所述目标群组的群组成员发送所述目标消息时,所述目标群组的群组termID;所述目标群组的群组termID随着目标群组中群组成员的变更而增加。
可选地,所述方法还包括:在所述目标群组的群组成员出现变更的情况下,向所述服务器发送所述目标群组的群组term获取请求;所述群组term获取请求携带有所述目标群组的本地群组termID;接收服务器发送的所述目标群组的群组term获取响应;根据所述群组term获取响应中的第一群组term记录,更新所述目标群组的群组成员信息以及本地群组term记录,并将所述目标群组的本地群组termID更新为所述第一群组term记录中入群termID中的最大值;其中,所述第一群组term记录为所述服务器的群组term记录中,所述目标群组的群组成员中入群termID大于所述本地群组termID的记录;所述群组term记录包括群组成员的入群termID以及退群termID;群组成员入群时,生成入群记录;所述入群记录的入群termID为所述目标群组的当前群组termID,入群记录的退群termID为预设数值;群组成员退群时生成退群记录;所述退群记录的入群termID和退群termID均为所述目标群组的当前群组termID。
可选地,所述基于所述群组成员游标信息,将所述目标群组中的目标消息标记为所述目标群组成员已读,包括:基于所述第一群组termID,获取所述本地群组term记录中的第二群组term记录;基于所述第二群组term记录,确定接收所述目标消息的群组成员总数,以及根据所述群组成员游标信息,确定所述目标群组成员中已读成员总数;其中,所述第二群组term记录为所述本地群组term记录中,入群termID小于或者等于所述第一群组termID的记录。
本申请还提供一种群组管理方法,应用于服务器,包括:
接收到目标群组成员针对目标群组中未读消息的已读报文;向电子设备发送所述目标群组成员的群组成员游标信息;其中,所述群组成员游标信息用于指示所述目标群组中所述目标群组成员的最大已读消息ID;所述最大已读消息ID为所述未读消息中所述电子设备发送的、且消息ID最大的未读消息的消息ID。
可选地,所述接收到目标群组成员针对目标群组中未读消息的已读报文之前,所述方法还包括:接收所述电子设备发送的目标消息;所述目标消息为消息ID小于或者等于所述最大已读消息ID的群组消息;向所述电子设备发送包含有第一群组termID的发送成功信息,并向所述目标群组中的群组成员发送所述目标消息;其中,所述第一群组termID为所述电子设备发送所述目标消息时,所述目标群组的群组termID;所述目标群组的群组termID随着目标群组中群组成员的变更而增加。
可选地,所述方法还包括:接收所述电子设备发送的所述目标群组的群组term获取请求;基于所述群组term获取请求中携带的所述目标群组的本地群组termID,获取第一群组term记录,并向所述电子设备发送群组term获取响应;其中,所述群组term获取响应包括:所述目标群组的第一群组term记录;所述第一群组term记录为所述服务器的群组term记录中,所述目标群组的群组成员中入群termID大于所述本地群组termID的记录;所述群组term记录包括群组成员的入群termID以及退群termID;群组成员入群时,生成入群记录;所述入群记录的入群termID为所述目标群组的当前群组termID,入群记录的退群termID为预设数值;群组成员退群时生成退群记录;所述退群记录的入群termID和退群termID均为所述目标群组的当前群组termID。
可选地,所述接收所述电子设备发送的所述目标群组的群组term获取请求之前,所述方法还包括:在所述目标群组的群组成员出现变更时,向所述电子设备发送群组成员变更通知,使得所述电子设备在接收到所述群组成员变更通知后,通过向所述服务器发送所述群组term获取请求,更新所述电子设备中所述目标群组的群组成员信息。
本申请还提供一种群组管理装置,包括:
接收模块,用于接收服务器发送的群组成员游标信息;所述群组成员游标信息用于指示目标群组中目标群组成员的最大已读消息ID;标记模块,用于基于所述群组成员游标信息,将所述目标群组中的目标消息标记为所述目标群组成员已读;其中,所述目标消息为所述电子设备发送的、且消息ID小于或者等于所述最大已读消息ID的群组消息。
可选地,所述装置还包括:发送模块;所述发送模块,用于向所述服务器发送所述目标消息;所述接收模块,还用于接收所述服务器反馈的发送成功信息;所述发送成功信息包括:第一群组termID;所述第一群组termID为所述服务器向所述目标群组的群组成员发送所述目标消息时,所述目标群组的群组termID;所述目标群组的群组termID随着目标群组中群组成员的变更而增加。
可选地,所述装置还包括:数据更新模块;所述发送模块,还用于在所述目标群组的群组成员出现变更的情况下,向所述服务器发送所述目标群组的群组term获取请求;所述群组term获取请求携带有所述目标群组的本地群组termID;所述接收模块,还用于接收服务器发送的所述目标群组的群组term获取响应;所述数据更新模块,用于根据所述群组term获取响应中的第一群组term记录,更新所述目标群组的群组成员信息以及本地群组term记录,并将所述目标群组的本地群组termID更新为所述第一群组term记录中入群termID中的最大值;其中,所述第一群组term记录为所述服务器的群组term记录中,所述目标群组的群组成员中入群termID大于所述本地群组termID的记录;所述群组term记录包括群组成员的入群termID以及退群termID;群组成员入群时,生成入群记录;所述入群记录的入群termID为所述目标群组的当前群组termID,入群记录的退群termID为预设数值;群组成员退群时生成退群记录;所述退群记录的入群termID和退群termID均为所述目标群组的当前群组termID。
可选地,所述装置还包括:获取模块和确定模块;所述获取模块,用于基于所述第一群组termID,获取所述本地群组term记录中的第二群组term记录;所述确定模块,用于基于所述第二群组term记录,确定接收所述目标消息的群组成员总数,以及根据所述群组成员游标信息,确定所述目标群组成员中已读成员总数;其中,所述第二群组term记录为所述本地群组term记录中,入群termID小于或者等于所述第一群组termID的记录。
本申请实施例还体用一种群组管理装置,包括:
接收模块,用于接收到目标群组成员针对目标群组中未读消息的已读报文;发送模块,用于向电子设备发送所述目标群组成员的群组成员游标信息;其中,所述群组成员游标信息用于指示所述目标群组中所述目标群组成员的最大已读消息ID;所述最大已读消息ID为所述未读消息中所述电子设备发送的、且消息ID最大的未读消息的消息ID。
可选地,所述接收模块,还用于接收所述电子设备发送的目标消息;所述目标消息为消息ID小于或者等于所述最大已读消息ID的群组消息;所述发送模块,还用于向所述电子设备发送包含有第一群组termID的发送成功信息,并向所述目标群组中的群组成员发送所述目标消息;其中,所述第一群组termID为所述目标群组的群组termID;所述目标群组的群组termID随着目标群组中群组成员的变更而增加。
可选地,所述接收模块,还用于接收所述电子设备发送的所述目标群组的群组term获取请求;获取模块,用于基于所述群组term获取请求中携带的所述目标群组的本地群组termID,获取第一群组term记录;所述发送模块,还用于向所述电子设备发送群组term获取响应;其中,所述群组term获取响应包括:所述目标群组的第一群组term记录;所述第一群组term记录为所述服务器的群组term记录中,所述目标群组的群组成员中入群termID大于所述本地群组termID的记录;所述群组term记录包括群组成员的入群termID以及退群termID;群组成员入群时,生成入群记录;所述入群记录的入群termID为所述目标群组的当前群组termID,入群记录的退群termID为预设数值;群组成员退群时生成退群记录;所述退群记录的入群termID和退群termID均为所述目标群组的当前群组termID。
可选地,所述发送模块,还用于在所述目标群组的群组成员出现变更时,向所述电子设备发送群组成员变更通知,使得所述电子设备在接收到所述群组成员变更通知后,通过向所述服务器发送所述群组term获取请求,更新所述电子设备中所述目标群组的群组成员信息。
本申请还提供一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现如上述任一种所述群组管理方法的步骤。
本申请还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述群组管理方法的步骤。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述群组管理方法的步骤。
本申请提供的群组管理方法及装置,群组成员在电子设备上发送群组消息,并被群组成员阅读后,可以接收服务器发送的群组成员游标信息,该群组成员游标信息用于指示目标群组中目标群组成员的最大已读消息ID。之后,基于群组成员游标信息,将目标群组中的目标消息标记为所述目标群组成员已读;其中,所述目标消息为所述电子设备发送的、且消息ID小于或者等于所述最大已读消息ID的群组消息。使得消息的已读未读状态更新相关的计算均在本地进行,降低了服务器的计算压力。
附图说明
为了更清楚地说明本申请或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请提供的群组管理方法应用的***架构示意图;
图2是本申请提供的群组管理方法的流程示意图;
图3是本申请提供的群组管理装置的结构示意图之一;
图4是本申请提供的群组管理装置的结构示意图之二;
图5是本申请提供的电子设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
在相关技术中,针对群组聊天中消息的已读未读,通常通过服务器存储发送消息的群组快照,群组快照存放发送群组消息时当前群组成员的相关信息。当群组中A群组成员发送消息,群组中B群组成员查看了该消息,B群组成员使用的电子设备将推送已读报文到服务器,服务器设置B群组成员在群中的最大已读消息游标(消息ID),服务器计算当前的消息已读数量和群成员总数量推送给A群组成员,A群组成员的群组聊天界面上展示已读未读数量。当群组成员A点击消息状态(包括:消息已读和消息未读)角标时,电子设备通过服务器实时查询已读未读人员列表。
然而,由于已读未读数量都需要通过服务器计算,服务器压力很大,尤其是在高并发下,服务器性能下降严重,已读但推送至发送方客户端不及时,导致已读未读数量展示有误,进而影响群组成员体验。
基于以上存在的技术问题,本申请实施例提供了一种群组管理方法,用于在客户端本地对群组成员及群组消息的管理,降低服务器的计算压力。
如图1所示,为本申请实施例提供的一种***架构,用于执行本申请实施例提供的群组管理方法,包括:服务器S1,以及与服务器S1通过网络连接的电子设备M1至M4。电子设备M1至M4分别通过网络与服务器S1进行通信。
下面结合附图,通过具体的实施例及其应用场景对本申请实施例提供的群组管理方法进行详细地说明。
如图2所示,本申请实施例提供的一种群组管理方法,该方法可以包括下述步骤201和步骤204:
步骤201、服务器接收到目标群组成员针对目标群组中未读消息的已读报文。
步骤202、服务器向电子设备发送所述目标群组成员的群组成员游标信息。
其中,所述群组成员游标信息用于指示所述目标群组中所述目标群组成员的最大已读消息ID;所述最大已读消息ID为所述未读消息中所述电子设备发送的、且消息ID最大的未读消息的消息ID。
示例性地,目标群组成员在其电子设备查看未读消息后,其电子设备可以将已读消息报文发送给服务器,使得服务器能够通知消息的发送方对已读消息进行状态变更。
可以理解的是,目标群组的群组成员在群组内发送消息的消息均有对应的消息ID,且最近发送的消息的ID最大。上述最大已读消息ID为目标群组的所有消息中目标用户已读的、且消息ID最大的群组消息。
步骤203、电子设备接收服务器发送的群组成员游标信息。
其中,所述群组成员游标信息用于指示目标群组中目标群组成员的最大已读游标,即上述最大已读消息ID。
示例性地,上述群组成员游标信息可以包括:目标群组成员的群组成员身份标识(identity document,ID),目标群组的群组ID,目标群组成员的最大已读消息ID。
示例性地,上述目标群组的群组ID,用于电子设备在接收到该群组成员游标信息后,确定该群组成员游标信息关联的目标群组;上述最大已读消息ID用于指示目标群组中,目标群组成员已读的所有消息中,消息ID最大的消息。
可以理解的是,对于目标群组成员所有已读的消息,只需要记录消息ID最大的消息,即可表示目标群组中消息ID小于或者等于该最大已读消息ID的消息均已被目标群组成员查看。
举例说明,对于目标群组中目标群组成员未读的消息4、消息5、消息6和消息7,目标群组成员查看消息4、消息5和消息6之后,服务器将消息6的消息ID发送到电子设备,表示目标群组成员已读消息4、消息5和消息6,未读消息7。
需要说明的是,群组成员游标信息可以包括多个群组成员,以及该多个成员中每个群组成员的最大已读消息ID。即服务器在向电子设备发送群组成员的最大已读消息ID时,可以将多个群组成员进行聚合后进行发送,以降低服务器多次发送的负荷。
步骤204、电子设备基于所述群组成员游标信息,将所述目标群组中的目标消息标记为所述目标群组成员已读。
其中,所述目标消息为所述电子设备发送的、且消息ID小于或者等于所述最大已读消息ID的群组消息。
示例性地,上述服务器接收的未读消息的已读报文,可以包括上述目标消息的已读报文。
示例性地,服务器向电子设备发送上述群组成员游标信息后,电子设备可以接收该群组成员游标信息,并基于该群组成员游标信息变更目标群组成员已读消息的状态。
示例性地,电子设备在接收到服务器发送的群组成员游标信息之后,可以将电子设备上目标群组中消息ID小于或者等于上述最大已读消息ID的消息,更新为目标群组成员已读。
如此,群组成员在电子设备上发送群组消息,并被群组成员阅读后,可以接收服务器发送的群组成员游标信息,该群组成员游标信息用于指示目标群组中目标群组成员的最大已读消息ID。之后,基于群组成员游标信息,将目标群组中的目标消息标记为所述目标群组成员已读;其中,所述目标消息为所述电子设备发送的、且消息ID小于或者等于所述最大已读消息ID的群组消息。使得消息的已读未读状态更新相关的计算均在本地进行,降低了服务器的计算压力。
可选地,在本申请实施例中,电子设备为了方便计算上述目标消息在目标群组中能够接收到该目标消息的群组成员的总数,以及阅读该目标消息的群组成员总数,需要保存发送该目标消息时的群组成员快照。
示例性地,上述步骤201之前,本申请实施例提供的群组管理方法,还可以包括以下步骤205至步骤208:
步骤205、电子设备向所述服务器发送所述目标消息。
需要说明的是,上述目标消息可以为一个或多个消息,为了方便描述,本申请实施例中以上述目标消息为一个消息为例进行描述。
步骤206、服务器接收所述电子设备发送的目标消息。
示例性地,电子设备向服务器发送上述目标消息后,服务器通过消息队列(Message Queue,MQ)向目标群组中的群组成员发送该目标消息。
步骤207、服务器向所述电子设备发送包含有第一群组termID的发送成功信息,并向所述目标群组中的群组成员发送所述目标消息。
其中,所述第一群组termID为所述电子设备发送所述目标消息时,所述目标群组的群组termID;所述目标群组的群组termID随着目标群组中群组成员的变更而增加。
示例性地,服务器在获取到该第一群组termID后,通过发送成功信息将该第一群组termID发送至电子设备。
步骤208、电子设备接收所述服务器反馈的发送成功信息。
其中,所述发送成功信息包括:第一群组termID;所述第一群组termID为所述服务器向所述目标群组的群组成员发送所述目标消息时,所述目标群组的群组termID;所述目标群组的群组termID随着目标群组中群组成员的变更而增加。
示例性地,电子设备向服务器发送上述目标消息后,服务器返回发送该目标消息时,目标群组的群组成员快照。该群组成员快照通过第一群组时期身份标识termID获取。
示例性地,在服务器接收到该目标消息后,获取目标群组当前的termID,即上述第一群组termID,该第一群组termID对应的群组成员指示发送该目标消息时目标群组的群组成员快照。
示例性地,当目标群组的群组成员更新后,电子设备也可以根据上述第一群组termID,获取到所有接收到上述目标消息的群组成员的成员信息,以及其中的已读成员的成员信息。
可选地,在本申请实施例中,服务器中设置有目标群组的term记录表,该term记录表中包括目标群组的群组成员变更记录。电子设备在目标群组的群组成员变更时,可以将数据库中的term记录同步到本地进行存储,并在接收到上述群组群组成员游标信息后,在本地进行消息状态的变更和已读未读数量的计算。
示例性地,本申请实施例提供的群组管理方法,还可以包括以下步骤209至步骤213:
步骤209、电子设备在所述目标群组的群组成员出现变更的情况下,向所述服务器发送所述目标群组的群组term获取请求。
其中,所述群组term获取请求携带有所述目标群组的本地群组termID。
步骤210、服务器接收所述电子设备发送的所述目标群组的群组term获取请求。
步骤211、服务器基于所述群组term获取请求中携带的所述目标群组的本地群组termID,获取第一群组term记录,并向所述电子设备发送群组term获取响应。
其中,所述群组term获取响应包括:所述目标群组的第一群组term记录;所述第一群组term记录为所述服务器的群组term记录中,所述目标群组的群组成员中入群termID大于所述本地群组termID的记录;所述群组term记录包括群组成员的入群termID以及退群termID;群组成员入群时,生成入群记录;所述入群记录的入群termID为所述目标群组的当前群组termID,入群记录的退群termID为预设数值;群组成员退群时生成退群记录;所述退群记录的入群termID和退群termID均为所述目标群组的当前群组termID。
示例性地,根据查询到的term记录中,出群termID的值,便可以确定对应的群组成员是否已经退群。例如,查询到某个群组成员的出群termID与入群termID相同,则表示该群组成员已退群。
步骤212、电子设备接收服务器发送的所述目标群组的群组term获取响应。
步骤213、电子设备根据所述群组term获取响应中的第一群组term记录,更新所述目标群组的群组成员信息以及本地群组term记录,并将所述目标群组的本地群组termID更新为所述第一群组term记录中入群termID中的最大值。
示例性地,上述本地群组term记录为服务器中的目标群组的term记录在电子设备中的缓存记录。当电子设备更新目标群组的群组成员信息时,将服务器中的目标群组的term记录同步到本地群组term记录中。
在一种可能的实现方式中,上述电子设备的群组成员更新步骤的触发方式可以为服务器在目标群组的群组成员变更后主动向电子设备发送群组成员变更通知触发的,也可以是电子设备在重新登录或者重新联网后触发的。
示例性地,上述步骤206之前,本申请实施例提供的应用于服务器的群组管理方法,还可以包括以下步骤214:
步骤214、在所述目标群组的群组成员出现变更时,向所述电子设备发送群组成员变更通知,使得所述电子设备在接收到所述群组成员变更通知后,通过向所述服务器发送所述群组term获取请求,更新所述电子设备中所述目标群组的群组成员信息。
需要说明的是,在本申请实施例中,服务器为上述term记录设置了term记录表。该term记录表包括:群组ID,成员ID,入群termID,退群termID等信息。当群组成员增加或减少时,均需要生成成员变更记录。具体可以参照以下表1所示的群组成员变更记录:
表1
由上述表1可知当成员入群时,生成入群记录,并将该入群记录的入群termID设置为群组当前的termID,将该入群记录的退群termID设置为预设数值Long.MAX_VALUE,即最大正整数。当成员退群时,生成退群记录,并将该退群记录的入群termID和退群termID均设置为群组的当前termID。其中,群组的termID在群组的成员变更时自增。
示例性地,电子设备可以在目标群组的群组成员变更时,基于电子设备的本地群组termID,从服务器获取目标群组的群组term记录中的增量记录,即入群termID大于本地群组termID的term记录。上述本地群组termID为本地群组term记录的入群termID中,最大的termID。
如此,电子设备可以根据本地存储的群组term记录,确定目标群组的当前群组成员,以及根据任一群组termID,确定该termID对应的群组快照,极大的降低了服务器的计算量。
进一步地,在本申请实施例中,电子设备在获取到上述第一群组termID后,可以基于该第一群组termID以及本地群组term记录中,在本地进行消息状态的变更和已读未读数量的计算。
具体地,可以通过以下步骤计算上述目标消息的已读成员数量和未读成员数量,上述步骤202,可以包括以下步骤202a1和步骤202a2:
步骤202a1、基于所述第一群组termID,获取所述本地群组term记录中的第二群组term记录。
步骤202a2、基于所述第二群组term记录,确定接收所述目标消息的群组成员总数,以及根据所述群组成员游标信息,确定所述目标群组成员中已读成员总数。
其中,上述第二群组term记录为所述本地群组term记录中,入群termID小于或者等于所述第一群组termID的记录。
需要说明的是,上述本地群组term记录与服务器中的term记录具有相同的格式和内容。
基于上述term记录表的设计,当在本地群组term记录中,基于目标群组的群组快照,即上述第一群组termID,查询发送目标消息时的目标群组的群组成员信息时,便可以根据目标群组的本地群组term记录中,所有入群termID小于或者等于第一群组的termID的记录,得到发送目标消息时目标群组中包含的群组成员。
示例性地,电子设备可以统计上述发送目标消息时目标群组中包含的群组成员的数量,并根据步骤203中接收到的群组成员游标信息,计算上述发送目标消息时目标群组中包含的群组成员中已阅读该目标消息的群组成员的数量。
可以理解的是,在发送的目标消息的预设区域显示有已读数量标识,该已读数量标识用于指示群组内能够接收到该目标消息的群粗成员总数,以及已阅读该消息的群组成员总数。该已读数量标识为基于目标群组成员内每个群组成员的最大已读游标确定的。为了减轻服务器的推送压力,只有在发送目标消息的群组成员关注该目标群组的情况下,服务器才会进行上述最大已读游标的推送。目标群组的会话界面在电子设备上处于显示状态的情况下,表示该目标群组处于被关注的状态,此时,服务器才会向电子设备推送目标群组的群组成员的最大已读游标。
在目标群组成员较多,即超过预设阈值的情况下,为了进一步减轻服务器的推送压力,服务器不会主动推送该目标群组的群组成员的最大已读游标。此时,电子设备可以在用户点击上述已读数量标识的情况下,从服务器获取上述目标群组的群组成员的最大已读游标。
如此,可以将能够查看目标消息的群组成员总数以及已阅目标消息的群组成员数量的计算放在电子设备上,而无需在服务器上进行计算,极大降低了服务的计算压力。
本申请实施例提供的群组管理方法,通过在服务器上设计群组term记录表,记录群组的成员变更记录,并根据term记录确定任一termID对应的群组快照。并且,当群组成员变更时,还可以将term记录同步更新到电子设备本地,进而将群组消息的状态变更及已读未读消息的计算放在电子设备本地进行计算,服务器只保留必要的消息通知及数据更新,极大的降低了服务器的计算量。
需要说明的是,本申请实施例提供的群组管理方法,执行主体可以为群组管理装置,或者该群组管理装置中的用于执行群组管理方法的控制模块。本申请实施例中以群组管理装置执行群组管理方法为例,说明本申请实施例提供的群组管理装置。
需要说明的是,本申请实施例中,上述各个方法附图所示的。群组管理方法均是以结合本申请实施例中的一个附图为例示例性的说明的。具体实现时,上述各个方法附图所示的群组管理方法还可以结合上述实施例中示意的其它可以结合的任意附图实现,此处不再赘述。
下面对本申请提供的群组管理装置进行描述,下文描述的与上文描述的群组管理方法可相互对应参照。
图3为本申请一实施例提供的群组管理装置的结构会示意图,如图3所示,具体包括:
接收模块301,用于接收服务器发送的群组成员游标信息;所述群组成员游标信息用于指示目标群组中目标群组成员的最大已读消息ID;标记模块302,用于基于所述群组成员游标信息,将所述目标群组中的目标消息标记为所述目标群组成员已读;其中,所述目标消息为所述电子设备发送的、且消息ID小于或者等于所述最大已读消息ID的群组消息。
可选地,所述装置还包括:发送模块;所述发送模块,用于向所述服务器发送所述目标消息;所述接收模块301,还用于接收所述服务器反馈的发送成功信息;所述发送成功信息包括:第一群组termID;所述第一群组termID为所述服务器向所述目标群组的群组成员发送所述目标消息时,所述目标群组的群组termID;所述目标群组的群组termID随着目标群组中群组成员的变更而增加。
可选地,所述装置还包括:数据更新模块;所述发送模块,还用于在所述目标群组的群组成员出现变更的情况下,向所述服务器发送所述目标群组的群组term获取请求;所述群组term获取请求携带有所述目标群组的本地群组termID;所述接收模块301,还用于接收服务器发送的所述目标群组的群组term获取响应;所述数据更新模块,用于根据所述群组term获取响应中的第一群组term记录,更新所述目标群组的群组成员信息以及本地群组term记录,并将所述目标群组的本地群组termID更新为所述第一群组term记录中入群termID中的最大值;其中,所述第一群组term记录为所述服务器的群组term记录中,所述目标群组的群组成员中入群termID大于所述本地群组termID的记录;所述群组term记录包括群组成员的入群termID以及退群termID;群组成员入群时,生成入群记录;所述入群记录的入群termID为所述目标群组的当前群组termID,入群记录的退群termID为预设数值;群组成员退群时生成退群记录;所述退群记录的入群termID和退群termID均为所述目标群组的当前群组termID。
可选地,所述装置还包括:获取模块和确定模块;所述获取模块,用于基于所述第一群组termID,获取所述本地群组term记录中的第二群组term记录;所述确定模块,用于基于所述第二群组term记录,确定接收所述目标消息的群组成员总数,以及根据所述群组成员游标信息,确定所述目标群组成员中已读成员总数;其中,所述第二群组term记录为所述本地群组term记录中,入群termID小于或者等于所述第一群组termID的记录。
需要说明的是,图3所示的群组管理装置可以是上述群组管理方法中的电子设备。
图4为本申请一实施例提供的群组管理装置的结构会示意图,如图4所示,具体包括:
接收模块401,用于接收到目标群组成员针对目标群组中未读消息的已读报文;发送模块402,用于向电子设备发送所述目标群组成员的群组成员游标信息;其中,所述群组成员游标信息用于指示所述目标群组中所述目标群组成员的最大已读消息ID;所述最大已读消息ID为所述未读消息中所述电子设备发送的、且消息ID最大的未读消息的消息ID。
可选地,所述接收模块401,还用于接收所述电子设备发送的目标消息;所述目标消息为消息ID小于或者等于所述最大已读消息ID的群组消息;所述发送模块402,还用于向所述电子设备发送包含有第一群组termID的发送成功信息,并向所述目标群组中的群组成员发送所述目标消息;其中,所述第一群组termID为所述电子设备发送所述目标消息时,所述目标群组的群组termID;所述目标群组的群组termID随着目标群组中群组成员的变更而增加。
可选地,所述接收模块401,还用于接收所述电子设备发送的所述目标群组的群组term获取请求;获取模块,用于基于所述群组term获取请求中携带的所述目标群组的本地群组termID,获取第一群组term记录;所述发送模块402,还用于向所述电子设备发送群组term获取响应;其中,所述群组term获取响应包括:所述目标群组的第一群组term记录;所述第一群组term记录为所述服务器的群组term记录中,所述目标群组的群组成员中入群termID大于所述本地群组termID的记录;所述群组term记录包括群组成员的入群termID以及退群termID;群组成员入群时,生成入群记录;所述入群记录的入群termID为所述目标群组的当前群组termID,入群记录的退群termID为预设数值;群组成员退群时生成退群记录;所述退群记录的入群termID和退群termID均为所述目标群组的当前群组termID。
可选地,所述发送模块402,还用于在所述目标群组的群组成员出现变更时,向所述电子设备发送群组成员变更通知,使得所述电子设备在接收到所述群组成员变更通知后,通过向所述服务器发送所述群组term获取请求,更新所述电子设备中所述目标群组的群组成员信息。
需要说明的是,图4所示的群组管理装置可以是上述群组管理方法中的服务器。
本申请提供的群组管理装置,通过在服务器上设计群组term记录表,记录群组的成员变更记录,并根据term记录确定任一termID对应的群组快照。并且,当群组成员变更时,还可以将term记录同步更新到电子设备本地,进而将群组消息的状态变更及已读未读消息的计算放在电子设备本地进行计算,服务器只保留必要的消息通知及数据更新,极大的降低了服务器的计算量。
图5示例了一种电子设备的实体结构示意图,如图5所示,该电子设备可以包括:处理器(processor)510、通信接口(Communications Interface)520、存储器(memory)530和通信总线540,其中,处理器510,通信接口520,存储器530通过通信总线540完成相互间的通信。处理器510可以调用存储器530中的逻辑指令,以执行群组管理方法,该方法包括:接收服务器发送的群组成员游标信息;所述群组成员游标信息用于指示目标群组中目标群组成员的最大已读消息ID;基于所述群组成员游标信息,将所述目标群组中的目标消息标记为所述目标群组成员已读;其中,所述目标消息为所述电子设备发送的、且消息ID小于或者等于所述最大已读消息ID的群组消息。
此外,上述的存储器530中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本申请还提供一种计算机程序产品,所述计算机程序产品包括存储在计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的群组管理方法,该方法包括:接收服务器发送的群组成员游标信息;所述群组成员游标信息用于指示目标群组中目标群组成员的最大已读消息ID;基于所述群组成员游标信息,将所述目标群组中的目标消息标记为所述目标群组成员已读;其中,所述目标消息为所述电子设备发送的、且消息ID小于或者等于所述最大已读消息ID的群组消息。
又一方面,本申请还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的群组管理方法,该方法包括:接收服务器发送的群组成员游标信息;所述群组成员游标信息用于指示目标群组中目标群组成员的最大已读消息ID;基于所述群组成员游标信息,将所述目标群组中的目标消息标记为所述目标群组成员已读;其中,所述目标消息为所述电子设备发送的、且消息ID小于或者等于所述最大已读消息ID的群组消息。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (10)
1.一种群组管理方法,应用于电子设备,其特征在于,包括:
接收服务器发送的群组成员游标信息;所述群组成员游标信息用于指示目标群组中目标群组成员的最大已读消息ID;
基于所述群组成员游标信息以及所述目标群组的term记录,将所述目标群组中的目标消息标记为所述目标群组成员已读;
其中,所述目标消息为所述电子设备发送的、且消息ID小于或者等于所述最大已读消息ID的群组消息;所述目标群组的term记录包括:所述目标群组的群组成员变更记录;所述目标群组的term记录用于在本地进行消息状态的变更和已读未读数量的计算。
2.根据权利要求1所述的方法,其特征在于,所述接收服务器发送的群组成员游标信息之前,所述方法还包括:
向所述服务器发送所述目标消息;
接收所述服务器反馈的发送成功信息;
所述发送成功信息包括:第一群组termID;所述第一群组termID为所述服务器向所述目标群组的群组成员发送所述目标消息时,所述目标群组的群组termID;所述目标群组的群组termID随着目标群组中群组成员的变更而增加。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
在所述目标群组的群组成员出现变更的情况下,向所述服务器发送所述目标群组的群组term获取请求;所述群组term获取请求携带有所述目标群组的本地群组termID;
接收服务器发送的所述目标群组的群组term获取响应;
根据所述群组term获取响应中的第一群组term记录,更新所述目标群组的群组成员信息以及本地群组term记录,并将所述目标群组的本地群组termID更新为所述第一群组term记录中入群termID中的最大值;
其中,所述第一群组term记录为所述服务器的群组term记录中,所述目标群组的群组成员中入群termID大于所述本地群组termID的记录;所述群组term记录包括群组成员的入群termID以及退群termID;群组成员入群时,生成入群记录;所述入群记录的入群termID为所述目标群组的当前群组termID,入群记录的退群termID为预设数值;群组成员退群时生成退群记录;所述退群记录的入群termID和退群termID均为所述目标群组的当前群组termID。
4.根据权利要求2或3所述的方法,其特征在于,所述基于所述群组成员游标信息,将所述目标群组中的目标消息标记为所述目标群组成员已读,包括:
基于所述第一群组termID,获取本地群组term记录中的第二群组term记录;
基于所述第二群组term记录,确定接收所述目标消息的群组成员总数,以及根据所述群组成员游标信息,确定所述目标群组成员中已读成员总数;
其中,所述第二群组term记录为所述本地群组term记录中,入群termID小于或者等于所述第一群组termID的记录。
5.一种群组管理方法,应用于服务器,其特征在于,包括:
接收到目标群组成员针对目标群组中未读消息的已读报文;
向电子设备发送所述目标群组成员的群组成员游标信息;
其中,所述群组成员游标信息用于指示所述目标群组中所述目标群组成员的最大已读消息ID;所述最大已读消息ID为所述未读消息中所述电子设备发送的、且消息ID最大的未读消息的消息ID;
所述接收到目标群组成员针对目标群组中未读消息的已读报文之前,所述方法还包括:
向所述电子设备发送所述目标群组的term记录;
其中,所述目标群组的term记录包括:所述目标群组的群组成员变更记录;所述目标群组的term记录用于在本地进行消息状态的变更和已读未读数量的计算。
6.根据权利要求5所述的方法,其特征在于,所述接收到目标群组成员针对目标群组中未读消息的已读报文之前,所述方法还包括:
接收所述电子设备发送的目标消息;所述目标消息为消息ID小于或者等于所述最大已读消息ID的群组消息;
向所述电子设备发送包含有第一群组termID的发送成功信息,并向所述目标群组中的群组成员发送所述目标消息;
其中,所述第一群组termID为所述电子设备发送所述目标消息时,所述目标群组的群组termID;所述目标群组的群组termID随着目标群组中群组成员的变更而增加。
7.根据权利要求5所述的方法,其特征在于,所述向所述电子设备发送所述目标群组的term记录,包括:
接收所述电子设备发送的所述目标群组的群组term获取请求;
基于所述群组term获取请求中携带的所述目标群组的本地群组termID,获取第一群组term记录,并向所述电子设备发送群组term获取响应;
其中,所述群组term获取响应包括:所述目标群组的第一群组term记录;所述第一群组term记录为所述服务器的群组term记录中,所述目标群组的群组成员中入群termID大于所述本地群组termID的记录;所述群组term记录包括群组成员的入群termID以及退群termID;群组成员入群时,生成入群记录;所述入群记录的入群termID为所述目标群组的当前群组termID,入群记录的退群termID为预设数值;群组成员退群时生成退群记录;所述退群记录的入群termID和退群termID均为所述目标群组的当前群组termID。
8.一种群组管理装置,其特征在于,所述装置包括:
接收模块,用于接收服务器发送的群组成员游标信息;所述群组成员游标信息用于指示目标群组中目标群组成员的最大已读消息ID;
标记模块,用于基于所述群组成员游标信息以及所述目标群组的term记录,将所述目标群组中的目标消息标记为所述目标群组成员已读;
其中,所述目标消息为电子设备发送的、且消息ID小于或者等于所述最大已读消息ID的群组消息;所述目标群组的term记录包括:所述目标群组的群组成员变更记录;所述目标群组的term记录用于在本地进行消息状态的变更和已读未读数量的计算。
9.一种群组管理装置,其特征在于,所述装置包括:
接收模块,用于接收到目标群组成员针对目标群组中未读消息的已读报文;
发送模块,用于向电子设备发送所述目标群组成员的群组成员游标信息;
其中,所述群组成员游标信息用于指示所述目标群组中所述目标群组成员的最大已读消息ID;所述最大已读消息ID为所述未读消息中所述电子设备发送的、且消息ID最大的未读消息的消息ID;
所述发送模块,还用于向所述电子设备发送所述目标群组的term记录;
其中,所述目标群组的term记录包括:所述目标群组的群组成员变更记录;所述目标群组的term记录用于在本地进行消息状态的变更和已读未读数量的计算。
10.一种计算机可读存储介质,包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现权利要求1至4或5至7中任一项所述群组管理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210051268.2A CN114338255B (zh) | 2022-01-17 | 2022-01-17 | 群组管理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210051268.2A CN114338255B (zh) | 2022-01-17 | 2022-01-17 | 群组管理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114338255A CN114338255A (zh) | 2022-04-12 |
CN114338255B true CN114338255B (zh) | 2023-09-05 |
Family
ID=81028212
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210051268.2A Active CN114338255B (zh) | 2022-01-17 | 2022-01-17 | 群组管理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114338255B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105577530A (zh) * | 2016-01-07 | 2016-05-11 | 天脉聚源(北京)科技有限公司 | 一种群聊信息概览方法及装置 |
CN106503061A (zh) * | 2016-09-27 | 2017-03-15 | 维沃移动通信有限公司 | 一种群消息显示方法及移动终端 |
CN107948050A (zh) * | 2017-11-08 | 2018-04-20 | 用友网络科技股份有限公司 | 一种提供群组消息已读状态的装置及方法 |
CN108400924A (zh) * | 2017-02-06 | 2018-08-14 | 阿里巴巴集团控股有限公司 | 群组消息的阅读状态展示方法、即时通讯客户端及服务端 |
CN110113489A (zh) * | 2019-04-30 | 2019-08-09 | 上海掌门科技有限公司 | 消息群组排序方法、装置、电子设备及介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10268340B2 (en) * | 2015-06-11 | 2019-04-23 | International Business Machines Corporation | Organizing messages in a hierarchical chat room framework based on topics |
KR101695917B1 (ko) * | 2015-08-17 | 2017-01-12 | 네이버 주식회사 | 그룹 메시지를 관리하기 위한 방법과 시스템 및 기록 매체 |
-
2022
- 2022-01-17 CN CN202210051268.2A patent/CN114338255B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105577530A (zh) * | 2016-01-07 | 2016-05-11 | 天脉聚源(北京)科技有限公司 | 一种群聊信息概览方法及装置 |
CN106503061A (zh) * | 2016-09-27 | 2017-03-15 | 维沃移动通信有限公司 | 一种群消息显示方法及移动终端 |
CN108400924A (zh) * | 2017-02-06 | 2018-08-14 | 阿里巴巴集团控股有限公司 | 群组消息的阅读状态展示方法、即时通讯客户端及服务端 |
CN107948050A (zh) * | 2017-11-08 | 2018-04-20 | 用友网络科技股份有限公司 | 一种提供群组消息已读状态的装置及方法 |
CN110113489A (zh) * | 2019-04-30 | 2019-08-09 | 上海掌门科技有限公司 | 消息群组排序方法、装置、电子设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114338255A (zh) | 2022-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100489842C (zh) | 分布式文件检索方法、装置、程序及记录该程序的记录介质 | |
US7822761B2 (en) | Groupware system with improved contact data handling | |
CN108744504B (zh) | 游戏数据的处理方法及装置、游戏服务器、游戏*** | |
CN112052247A (zh) | 搜索引擎的索引更新***、方法、装置、电子设备、存储介质 | |
CN107103014A (zh) | 历史推送信息的重现方法、装置和*** | |
CN104113571A (zh) | 数据冲突处理方法和装置 | |
CN110471749A (zh) | 任务处理方法、装置、计算机可读存储介质和计算机设备 | |
CN111314747B (zh) | 一种资源停播控制方法、装置、设备及存储介质 | |
CN105138691A (zh) | 分析用户业务量的方法和*** | |
CN111625353B (zh) | 虚拟资源分发处理方法、装置、服务器及存储介质 | |
US20090319519A1 (en) | Communication system, communication device, and computer program | |
US20120246311A1 (en) | Session management system, session management device, session management method and session management program | |
CN111277483A (zh) | 一种多端消息的同步方法、服务器及可存储介质 | |
US20070055733A1 (en) | Method, server and program product for delivering messages | |
EP2025133B1 (en) | Repository synchronization in a ranked repository cluster | |
CN108600284A (zh) | 一种基于Ceph的虚拟机高可用实现方法及*** | |
CN114338255B (zh) | 群组管理方法及装置 | |
CN116846980B (zh) | 一种积分发放和使用方法、***及设备 | |
US8224940B2 (en) | Strategies for compressing information using bloom filters | |
CN111311310B (zh) | 广告订单推送方法及装置、存储介质及电子装置 | |
CN114640705B (zh) | 一种大规模物联终端心跳监控方法 | |
CN113472892A (zh) | 一种消息未读与已读的状态多终端同步方法及*** | |
CN112968933B (zh) | 数据传输方法、装置、服务器及存储介质 | |
CN110716726A (zh) | 客户端更新方法及装置、电子设备和计算机可读存储介质 | |
CN114945036B (zh) | 分享数据的处理方法、相关设备及介质 |
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 |