即时通讯中聊天消息状态更新方法及装置与流程
未命名
09-24
阅读:67
评论:0
1.本技术涉及即时通信领域,尤其涉及一种即时通讯中聊天消息状态更新方法及装置。
背景技术:
2.在即时通讯系统中,为方便用户了解自己发送消息的已读情况,普遍都会设计一套聊天消息的已读未读统计与多端同步机制。
3.现有技术普遍实现方案包括:s1:建立已读表,记录每条消息每个聊天成员的已读状态;s2:后台根据消息id,查询该消息的已读人员与未读人员的情况;s3:前台根据已读未读人员情况展示已读未读信息。
4.在现有技术中,一个聊天群记录的已读和未读信息普遍都会占用数据库服务器的大量资源,且这个资源开销会随着历史消息的增多而急剧加大。
技术实现要素:
5.鉴于此,本技术实施例提供了一种即时通讯中聊天消息状态更新方法及装置,以消除或改善现有技术中存在的一个或更多个缺陷。
6.本技术的第一个方面提供了一种即时通讯中聊天消息状态更新方法,该方法包括:
7.在即时通讯中遍历各个聊天群各自在当前页面对应的多条聊天消息,将各条所述聊天消息依次作为目标聊天消息并执行预设的状态更新步骤,直至获取到各条所述聊天消息当前对应的已读成员数和未读成员数,以在各个所述聊天群各自对应的页面中分别展示每条所述聊天消息的所述已读成员数和所述未读成员数;
8.其中,所述状态更新步骤包括:
9.根据当前的目标聊天消息所在的聊天群名称和该目标聊天消息的发送时间,从该目标聊天消息对应的群成员变更时间表中,查找与该聊天群名称和该发送时间分别匹配的聊天群id和变更时间,从而获取与所述聊天群id和所述变更时间相对应的群成员集合;其中,所述群成员变更时间表为预先生成的用于存储各个所述聊天群中的聊天群id、群成员的变更时间和群成员集合之间的对应关系的数据表;
10.根据所述目标聊天消息所在的聊天群名称和所述群成员集合,从所述目标聊天消息对应的所述群消息已读时间表获取所述群成员集合中各个群成员针对所述目标聊天群中最后一条已读聊天消息的已读时间;其中,所述群消息已读时间表为预先生成的用于存储各个所述聊天群中的聊天群id、各个群成员的唯一标识和各个群成员的所述已读时间之间的对应关系的数据表;
11.遍历各个所述已读时间,若存在所述已读时间大于所述目标聊天消息的发送时间,则将该已读时间对应的群成员归类为已读成员;否则,将该群成员归类为未读成员;
12.统计所述目标聊天消息对应的已读成员数和未读成员数。
13.在本技术的一些实施例中,在所述在即时通讯中遍历各个聊天群各自在当前页面对应的多条聊天消息,将各条所述聊天消息依次作为目标聊天消息并执行预设的状态更新步骤之前,还包括:
14.接收由服务器发送的经更新的所述群消息已读时间表和所述群成员变更时间记录表;
15.将各个聊天群对应的群消息已读时间表和群成员变更时间记录表存储至聊天缓存。
16.在本技术的一些实施例中,在所述将各个聊天群对应的群消息已读时间表和群成员变更时间记录表存储至聊天缓存之后,还包括:
17.若经检测获知所述群成员进入对应的所述聊天群阅读当前页面的多条所述聊天消息,则通知所述服务器更新所述群消息已读时间表中该群成员的已读时间。
18.在本技术的一些实施例中,所述若经检测获知所述群成员进入对应的所述聊天群阅读当前页面的多条所述聊天消息,则通知所述服务器更新所述群消息已读时间表中该群成员的已读时间,包括:
19.若当前群聊天页面存在未读消息或收到一条新聊天消息,则向所述服务器发送已读时间修改报文以使所述服务器更新所述群消息已读时间表中该群成员的已读时间。
20.在本技术的一些实施例中,在所述若当前群聊天页面存在未读消息或收到一条新聊天消息,则向所述服务器发送已读时间修改报文以使所述服务器更新所述群消息已读时间表中该群成员的已读时间之后,还包括:
21.接收经所述服务器转发的所述聊天群中的其他群成员的所述已读时间修改报文;
22.根据各个所述已读时间修改报文更新所述聊天缓存中的群消息已读时间表。
23.在本技术的一些实施例中,在所述将各个聊天群对应的群消息已读时间表和群成员变更时间记录表存储至聊天缓存之后,还包括:
24.若所述服务器检测到所述聊天群中的群成员数量发生变更,则接收由所述服务器发送的群成员变更报文;
25.根据所述群成员变更报文在所述聊天缓存中的群成员变更时间记录表中添加相对应的变更数据。
26.在本技术的一些实施例中,在所述根据所述群成员变更报文在所述聊天缓存中的群成员变更时间记录表中添加相对应的变更数据之后,还包括:
27.若经检测获知所述群成员退出所述聊天群,则该群成员退出前的每条所述聊天消息的所述已读成员数和所述未读成员数保持不变;
28.若经检测获知所述群成员退出所述聊天群且之后再次加入该聊天群,则在此期间所述聊天群中其他所述群成员发送的每条所述聊天消息的所述已读成员数和所述未读成员数保持不变。
29.本技术的第二个方面提供了一种即时通讯中聊天消息状态更新装置,该装置包括:
30.遍历更新模块,用于在即时通讯中遍历各个聊天群各自在当前页面对应的多条聊天消息,将各条所述聊天消息依次作为目标聊天消息并执行预设的状态更新步骤,直至获取到各条所述聊天消息当前对应的已读成员数和未读成员数,以在各个所述聊天群各自对
应的页面中分别展示每条所述聊天消息的所述已读成员数和所述未读成员数;其中,所述状态更新步骤包括:
31.群成员集合查找模块,用于根据当前的目标聊天消息所在的聊天群名称和该目标聊天消息的发送时间,从该目标聊天消息对应的群成员变更时间表中,查找与该聊天群名称和该发送时间分别匹配的聊天群id和变更时间,从而获取与所述聊天群id和所述变更时间相对应的群成员集合;其中,所述群成员变更时间表为预先生成的用于存储各个所述聊天群中的聊天群id、群成员的变更时间和群成员集合之间的对应关系的数据表;
32.已读时间查找模块,用于根据所述目标聊天消息所在的聊天群名称和所述群成员集合,从所述目标聊天消息对应的所述群消息已读时间表获取所述群成员集合中各个群成员针对所述目标聊天群中最后一条已读聊天消息的已读时间;其中,所述群消息已读时间表为预先生成的用于存储各个所述聊天群中的聊天群id、各个群成员的唯一标识和各个群成员的所述已读时间之间的对应关系的数据表;
33.消息状态判断模块,用于遍历各个所述已读时间,若存在所述已读时间大于所述目标聊天消息的发送时间,则将该已读时间对应的群成员归类为已读成员;否则,将该群成员归类为未读成员;
34.消息状态数统计模块,用于统计所述目标聊天消息对应的已读成员数和未读成员数。
35.本技术的第三个方面提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现前述的第一方面所述的即时通讯中聊天消息状态更新方法。
36.本技术的第四个方面提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现前述的第一方面所述的即时通讯中聊天消息状态更新方法。
37.本技术提供一种即时通讯中聊天消息状态更新方法及装置,所述方法包括:在即时通讯中遍历各个聊天群各自在当前页面对应的多条聊天消息,通过在群成员变更时间表和群消息已读时间表中查找聊天消息对应的多个群成员以及每个群成员的已读时间,从而判断聊天消息对应的各个群成员是否为已读状态,直至获取到各条所述聊天消息当前对应的已读成员数和未读成员数。本技术能够降低已读和未读消息的记录及更新过程在服务器中的资源占用率,并提高即时通讯中聊天消息状态更新的效率和及时性,以提高即时通讯中聊天用户的用户体验。
38.本技术的附加优点、目的,以及特征将在下面的描述中将部分地加以阐述,且将对于本领域普通技术人员在研究下文后部分地变得明显,或者可以根据本技术的实践而获知。本技术的目的和其它优点可以通过在说明书以及附图中具体指出的结构实现到并获得。
39.本领域技术人员将会理解的是,能够用本技术实现的目的和优点不限于以上具体所述,并且根据以下详细说明将更清楚地理解本技术能够实现的上述和其他目的。
附图说明
40.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,并不
构成对本技术的限定。附图中的部件不是成比例绘制的,而只是为了示出本技术的原理。为了便于示出和描述本技术的一些部分,附图中对应部分可能被放大,即,相对于依据本技术实际制造的示例性装置中的其它部件可能变得更大。在附图中:
41.图1为本技术一实施例中的即时通讯中聊天消息状态更新方法的流程示意图。
42.图2为本技术另一实施例中的即时通讯中聊天消息状态更新装置的结构示意图。
43.图3为本技术另一实施例中的客户端发送消息的已读信息展示示意图。
44.图4为本技术另一实施例中的前后台已读时间数据交互示意图。
45.图5为本技术另一实施例中的客户端已读信息更新示意图。
46.图6为本技术另一实施例中的前后台成员变更时间记录数据交互示意图。
具体实施方式
47.为使本技术的目的、技术方案和优点更加清楚明白,下面结合实施方式和附图,对本技术做进一步详细说明。在此,本技术的示意性实施方式及其说明用于解释本技术,但并不作为对本技术的限定。
48.在此,还需要说明的是,为了避免因不必要的细节而模糊了本技术,在附图中仅仅示出了与根据本技术的方案密切相关的结构和/或处理步骤,而省略了与本技术关系不大的其他细节。
49.应该强调,术语“包括/包含”在本文使用时指特征、要素、步骤或组件的存在,但并不排除一个或更多个其它特征、要素、步骤或组件的存在或附加。
50.在此,还需要说明的是,如果没有特殊说明,术语“连接”在本文不仅可以指直接连接,也可以表示存在中间物的间接连接。
51.在下文中,将参考附图描述本技术的实施例。在附图中,相同的附图标记代表相同或类似的部件,或者相同或类似的步骤。
52.具体通过下述实施例进行详细说明。
53.本技术实施例提供一种可以由即时通讯中聊天消息状态更新装置或客户端设备执行的即时通讯中聊天消息状态更新方法,参见图1,所述的即时通讯中聊天消息状态更新方法具体包含有如下内容:
54.步骤110:在即时通讯中遍历各个聊天群各自在当前页面对应的多条聊天消息,将各条所述聊天消息依次作为目标聊天消息并执行预设的状态更新步骤,直至获取到各条所述聊天消息当前对应的已读成员数和未读成员数,以在各个所述聊天群各自对应的页面中分别展示每条所述聊天消息的所述已读成员数和所述未读成员数。其中,所述状态更新步骤包括下述步骤120至150。
55.步骤120:根据当前的目标聊天消息所在的聊天群名称和该目标聊天消息的发送时间,从该目标聊天消息对应的群成员变更时间表中,查找与该聊天群名称和该发送时间分别匹配的聊天群id和变更时间,从而获取与所述聊天群id和所述变更时间相对应的群成员集合;其中,所述群成员变更时间表为预先生成的用于存储各个所述聊天群中的聊天群id、群成员的变更时间和群成员集合之间的对应关系的数据表。
56.步骤130:根据所述目标聊天消息所在的聊天群名称和所述群成员集合,从所述目标聊天消息对应的所述群消息已读时间表获取所述群成员集合中各个群成员针对所述目
标聊天群中最后一条已读聊天消息的已读时间;其中,所述群消息已读时间表为预先生成的用于存储各个所述聊天群中的聊天群id、各个群成员的唯一标识和各个群成员的所述已读时间之间的对应关系的数据表。
57.步骤140:遍历各个所述已读时间,若存在所述已读时间大于所述目标聊天消息的发送时间,则将该已读时间对应的群成员归类为已读成员;否则,将该群成员归类为未读成员。
58.步骤150:统计所述目标聊天消息对应的已读成员数和未读成员数。
59.另外,为了提高数据处理速率,在步骤110之前,还包括:
60.步骤111:接收由服务器发送的经更新的所述群消息已读时间表和所述群成员变更时间记录表。
61.步骤112:将各个聊天群对应的群消息已读时间表和群成员变更时间记录表存储至聊天缓存。
62.具体来说,参见图3,客户端设备在进入聊天页面后,首先接收由服务器发送的经更新的群消息已读时间表和群成员变更时间记录表;然后将各个聊天群对应的群消息已读时间表和群成员变更时间记录表存储至聊天缓存(即图3中的缓存已读信息)。接着在遍历各个聊天群各自在当前页面对应的多条聊天消息(即图3中的加载历史消息,或者发送新消息),将各条所述聊天消息依次作为目标聊天消息并执行预设的状态更新步骤,直至到各条所述聊天消息当前对应的已读成员数和未读成员数,以在各个聊天群各自对应的页面中分别展示每条聊天消息的已读成员数和未读成员数;其中,状态更新步骤包括:根据当前的目标聊天消息所在的聊天群名称和该目标聊天消息的发送时间,从该目标聊天消息对应的群成员变更时间表中,查找与该聊天群名称和该发送时间分别匹配的聊天群id和变更时间,从而获取与聊天群id和变更时间相对应的群成员集合;其中,群成员变更时间表为预先生成的用于存储各个聊天群中的聊天群id、群成员的变更时间和群成员集合之间的对应关系的数据表;根据目标聊天消息所在的聊天群名称和群成员集合,从目标聊天消息对应的群消息已读时间表获取群成员集合中各个群成员针对目标聊天群中最后一条已读聊天消息的已读时间;其中,群消息已读时间表为预先生成的用于存储各个聊天群中的聊天群id、各个群成员的唯一标识和各个群成员的已读时间之间的对应关系的数据表;遍历各个已读时间,若存在已读时间大于目标聊天消息的发送时间,则将该已读时间对应的群成员归类为已读成员;否则,将该群成员归类为未读成员;最后,统计目标聊天消息对应的已读成员数和未读成员数,从而能够降低已读和未读消息的记录及更新过程在服务器中的资源占用率,并提高即时通讯中聊天消息状态更新的效率和及时性,以提高即时通讯中聊天用户的用户体验。
63.其中,群消息已读时间表包括:聊天群id、用户id(即各个群成员的唯一标识)和已读时间;群成员变更时间表包括:聊天群id、变更时间和群成员集合。
64.为了及时在服务器中更新群消息已读时间表,在步骤112之后,还包括:
65.步骤113:若经检测获知所述群成员进入对应的所述聊天群阅读当前页面的多条所述聊天消息,则通知所述服务器更新所述群消息已读时间表中该群成员的已读时间。
66.其中,步骤113具体包括:步骤114:若当前群聊天页面存在未读消息或收到一条新聊天消息,则向所述服务器发送已读时间修改报文以使所述服务器更新所述群消息已读时
间表中该群成员的已读时间。
67.具体来说,参见图4,客户端a在进入聊天页面后,若检测到当前群聊天页面存在未读消息或收到一条新聊天消息(即图4中的存在未读的新消息),则向服务器发送已读时间修改报文(即图4中发送报文a:某人已读了某个聊天群消息)以使所述服务器更新所述群消息已读时间表中该群成员的已读时间(即图4中修改已读时间表),从而能够及时在服务器中更新群消息已读时间表。
68.为了及时更新本地缓存中的群消息已读时间表,在步骤114之后,还包括:
69.步骤115:接收经所述服务器转发的所述聊天群中的其他群成员的所述已读时间修改报文;
70.根据各个所述已读时间修改报文更新所述聊天缓存中的群消息已读时间表。
71.具体来说,参见图4,客户端b接收经服务器转发的所述聊天群中的其他群成员的已读时间修改报文(即图4中的发送报文a和收到报文a),然后根据各个已读时间修改报文更新聊天缓存中的群消息已读时间表(即图4中客户端已读信息更新流程),具体参见图5(即再次执行步骤110中的状态更新步骤),从而能够及时更新本地缓存中的群消息已读时间表。
72.为了及时在服务器和客户端本地缓存中更新群成员变更时间记录表,在步骤112之后,还包括:
73.步骤116:若所述服务器检测到所述聊天群中的群成员数量发生变更,则接收由所述服务器发送的群成员变更报文;
74.步骤117:根据所述群成员变更报文在所述聊天缓存中的群成员变更时间记录表中添加相对应的变更数据。
75.具体来说,参见图6,若所述服务器检测到所述聊天群中的群成员数量发生变更(即图6中的群成员关系变更),则客户端设备接收由所述服务器发送的群成员变更报文(即图6中的新增一条群成员变更时间记录
→
发送报文b:群成员变更报文
→
收到报文b);根据群成员变更报文在聊天缓存中的群成员变更时间记录表中添加相对应的变更数据(即图6中的更新缓存中的群成员变更记录),从而能够及时在服务器和客户端本地缓存中更新群成员变更时间记录表。
76.为了有效确保已读消息和未读消息统计的准确性,在步骤117之后,还包括:
77.步骤118:若经检测获知所述群成员退出所述聊天群,则该群成员退出前的每条所述聊天消息的所述已读成员数和所述未读成员数保持不变;
78.若经检测获知所述群成员退出所述聊天群且之后再次加入该聊天群,则在此期间所述聊天群中其他所述群成员发送的每条所述聊天消息的所述已读成员数和所述未读成员数保持不变。
79.具体来说,若检测到某群成员反复进群、离群时,能正确统计该用户离群前后和再次入群后的已读信息和未读信息。假设该用户未离群前,聊天群成员为x,则需要统计的已读和未读消息的总数为:
80.a)该用户离群前,需要统计的已读未读总数为x;
81.b)该用户离群后,再次入群前,需要统计的已读未读总数为x-1;
82.c)该用户再次入群后,需要统计的已读未读总数为x;
83.也就是说,通过聊天群成员变更时间记录,用户反复进群离群也不会影响到旧消息的统计结果。
84.另外,若某群成员反复进群、离群时,该用户在该聊天群获取历史消息时,能正确获取他所应该获取的历史消息,即该用户获取的历史消息不会包含该用户离群期间其他人发的消息,从而能够有效确保群成员在反复加群和离群时已读消息和未读消息统计的准确性。
85.从软件层面来说,本技术还提供一种用于执行所述的即时通讯中聊天消息状态更新方法中全部或部分内的即时通讯中聊天消息状态更新装置,参见图4,所述的即时通讯中聊天消息状态更新装置具体包含有如下内容:
86.遍历更新模块10,用于在即时通讯中遍历各个聊天群各自在当前页面对应的多条聊天消息,将各条所述聊天消息依次作为目标聊天消息并执行预设的状态更新步骤,直至获取到各条所述聊天消息当前对应的已读成员数和未读成员数,以在各个所述聊天群各自对应的页面中分别展示每条所述聊天消息的所述已读成员数和所述未读成员数;其中,所述状态更新步骤包括前述步骤120至150。
87.群成员集合查找模块20,用于根据当前的目标聊天消息所在的聊天群名称和该目标聊天消息的发送时间,从该目标聊天消息对应的群成员变更时间表中,查找与该聊天群名称和该发送时间分别匹配的聊天群id和变更时间,从而获取与所述聊天群id和所述变更时间相对应的群成员集合;其中,所述群成员变更时间表为预先生成的用于存储各个所述聊天群中的聊天群id、群成员的变更时间和群成员集合之间的对应关系的数据表;
88.已读时间查找模块30,用于根据所述目标聊天消息所在的聊天群名称和所述群成员集合,从所述目标聊天消息对应的所述群消息已读时间表获取所述群成员集合中各个群成员针对所述目标聊天群中最后一条已读聊天消息的已读时间;其中,所述群消息已读时间表为预先生成的用于存储各个所述聊天群中的聊天群id、各个群成员的唯一标识和各个群成员的所述已读时间之间的对应关系的数据表;
89.消息状态判断模块40,用于遍历各个所述已读时间,若存在所述已读时间大于所述目标聊天消息的发送时间,则将该已读时间对应的群成员归类为已读成员;否则,将该群成员归类为未读成员;
90.消息状态数统计模块50,用于统计所述目标聊天消息对应的已读成员数和未读成员数。
91.本技术提供的即时通讯中聊天消息状态更新装置的实施例具体可以用于执行上述实施例中的即时通讯中聊天消息状态更新方法的实施例的处理流程,其功能在此不再赘述,可以参照上述的即时通讯中聊天消息状态更新方法实施例的详细描述。
92.本技术提供一种即时通讯中聊天消息状态装置,该装置执行的方法包括:在即时通讯中遍历各个聊天群各自在当前页面对应的多条聊天消息,通过在群成员变更时间表和群消息已读时间表中查找聊天消息对应的多个群成员以及每个群成员的已读时间,从而判断聊天消息对应的各个群成员是否为已读状态,直至获取到各条所述聊天消息当前对应的已读成员数和未读成员数。本技术能够降低已读和未读消息的记录及更新过程在服务器中的资源占用率,并提高即时通讯中聊天消息状态更新的效率和及时性,以提高即时通讯中聊天用户的用户体验。
93.本技术实施例还提供了一种电子设备,例如中心服务器,该电子设备可以包括处理器、存储器、接收器及发送器,处理器用于执行上述实施例提及的即时通讯中聊天消息状态更新方法,其中处理器和存储器可以通过总线或者其他方式连接,以通过总线连接为例。该接收器可通过有线或无线方式与处理器、存储器连接。
94.处理器可以为中央处理器(centralprocessingunit,cpu)。处理器还可以为其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(application specificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。
95.存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本技术实施例中的即时通讯中聊天消息状态更新方法对应的程序指令/模块。处理器通过运行存储在存储器中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及数据处理,即实现上述方法实施例中的即时通讯中聊天消息状态更新方法。
96.存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储处理器所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
97.所述一个或者多个模块存储在所述存储器中,当被所述处理器执行时,执行实施例中的即时通讯中聊天消息状态更新方法。
98.在本技术的一些实施例中,用户设备可以包括处理器、存储器和收发单元,该收发单元可包括接收器和发送器,处理器、存储器、接收器和发送器可通过总线系统连接,存储器用于存储计算机指令,处理器用于执行存储器中存储的计算机指令,以控制收发单元收发信号。
99.作为一种实现方式,本技术中接收器和发送器的功能可以考虑通过收发电路或者收发的专用芯片来实现,处理器可以考虑通过专用处理芯片、处理电路或通用芯片实现。
100.作为另一种实现方式,可以考虑使用通用计算机的方式来实现本技术实施例提供的服务器。即将实现处理器,接收器和发送器功能的程序代码存储在存储器中,通用处理器通过执行存储器中的代码来实现处理器,接收器和发送器的功能。
101.本技术实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时以实现前述的即时通讯中聊天消息状态更新方法的步骤。该计算机可读存储介质可以是有形存储介质,诸如随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、软盘、硬盘、可移动存储盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质。
102.本领域普通技术人员应该可以明白,结合本文中所公开的实施方式描述的各示例性的组成部分、系统和方法,能够以硬件、软件或者二者的结合来实现。具体究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每
个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(asic)、适当的固件、插件、功能卡等等。当以软件方式实现时,本技术的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。
103.需要明确的是,本技术并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本技术的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本技术的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。
104.本技术中,针对一个实施方式描述和/或例示的特征,可以在一个或更多个其它实施方式中以相同方式或以类似方式使用,和/或与其他实施方式的特征相结合或代替其他实施方式的特征。
105.以上所述仅为本技术的优选实施例,并不用于限制本技术,对于本领域的技术人员来说,本技术实施例可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
技术特征:
1.一种即时通讯中聊天消息状态更新方法,其特征在于,包括:在即时通讯中遍历各个聊天群各自在当前页面对应的多条聊天消息,将各条所述聊天消息依次作为目标聊天消息并执行预设的状态更新步骤,直至获取到各条所述聊天消息当前对应的已读成员数和未读成员数,以在各个所述聊天群各自对应的页面中分别展示每条所述聊天消息的所述已读成员数和所述未读成员数;其中,所述状态更新步骤包括:根据当前的目标聊天消息所在的聊天群名称和该目标聊天消息的发送时间,从该目标聊天消息对应的群成员变更时间表中,查找与该聊天群名称和该发送时间分别匹配的聊天群id和变更时间,从而获取与所述聊天群id和所述变更时间相对应的群成员集合;其中,所述群成员变更时间表为预先生成的用于存储各个所述聊天群中的聊天群id、群成员的变更时间和群成员集合之间的对应关系的数据表;根据所述目标聊天消息所在的聊天群名称和所述群成员集合,从所述目标聊天消息对应的所述群消息已读时间表获取所述群成员集合中各个群成员针对所述目标聊天群中最后一条已读聊天消息的已读时间;其中,所述群消息已读时间表为预先生成的用于存储各个所述聊天群中的聊天群id、各个群成员的唯一标识和各个群成员的所述已读时间之间的对应关系的数据表;遍历各个所述已读时间,若存在所述已读时间大于所述目标聊天消息的发送时间,则将该已读时间对应的群成员归类为已读成员;否则,将该群成员归类为未读成员;统计所述目标聊天消息对应的已读成员数和未读成员数。2.根据权利要求1所述的即时通讯中聊天消息状态更新方法,其特征在于,在所述在即时通讯中遍历各个聊天群各自在当前页面对应的多条聊天消息,将各条所述聊天消息依次作为目标聊天消息并执行预设的状态更新步骤之前,还包括:接收由服务器发送的经更新的所述群消息已读时间表和所述群成员变更时间记录表;将各个聊天群对应的群消息已读时间表和群成员变更时间记录表存储至聊天缓存。3.根据权利要求2所述的即时通讯中聊天消息状态更新方法,其特征在于,在所述将各个聊天群对应的群消息已读时间表和群成员变更时间记录表存储至聊天缓存之后,还包括:若经检测获知所述群成员进入对应的所述聊天群阅读当前页面的多条所述聊天消息,则通知所述服务器更新所述群消息已读时间表中该群成员的已读时间。4.根据权利要求3所述的即时通讯中聊天消息状态更新方法,其特征在于,所述若经检测获知所述群成员进入对应的所述聊天群阅读当前页面的多条所述聊天消息,则通知所述服务器更新所述群消息已读时间表中该群成员的已读时间,包括:若当前群聊天页面存在未读消息或收到一条新聊天消息,则向所述服务器发送已读时间修改报文以使所述服务器更新所述群消息已读时间表中该群成员的已读时间。5.根据权利要求4所述的即时通讯中聊天消息状态更新方法,其特征在于,在所述若当前群聊天页面存在未读消息或收到一条新聊天消息,则向所述服务器发送已读时间修改报文以使所述服务器更新所述群消息已读时间表中该群成员的已读时间之后,还包括:接收经所述服务器转发的所述聊天群中的其他群成员的所述已读时间修改报文;根据各个所述已读时间修改报文更新所述聊天缓存中的群消息已读时间表。
6.根据权利要求2所述的即时通讯中聊天消息状态更新方法,其特征在于,在所述将各个聊天群对应的群消息已读时间表和群成员变更时间记录表存储至聊天缓存之后,还包括:若所述服务器检测到所述聊天群中的群成员数量发生变更,则接收由所述服务器发送的群成员变更报文;根据所述群成员变更报文在所述聊天缓存中的群成员变更时间记录表中添加相对应的变更数据。7.根据权利要求6所述的即时通讯中聊天消息状态更新方法,其特征在于,在所述根据所述群成员变更报文在所述聊天缓存中的群成员变更时间记录表中添加相对应的变更数据之后,还包括:若经检测获知所述群成员退出所述聊天群,则该群成员退出前的每条所述聊天消息的所述已读成员数和所述未读成员数保持不变;若经检测获知所述群成员退出所述聊天群且之后再次加入该聊天群,则在此期间所述聊天群中其他所述群成员发送的每条所述聊天消息的所述已读成员数和所述未读成员数保持不变。8.一种即时通讯中聊天消息状态更新装置,其特征在于,包括:遍历更新模块,用于在即时通讯中遍历各个聊天群各自在当前页面对应的多条聊天消息,将各条所述聊天消息依次作为目标聊天消息并执行预设的状态更新步骤,直至获取到各条所述聊天消息当前对应的已读成员数和未读成员数,以在各个所述聊天群各自对应的页面中分别展示每条所述聊天消息的所述已读成员数和所述未读成员数;其中,所述状态更新步骤包括:群成员集合查找模块,用于根据当前的目标聊天消息所在的聊天群名称和该目标聊天消息的发送时间,从该目标聊天消息对应的群成员变更时间表中,查找与该聊天群名称和该发送时间分别匹配的聊天群id和变更时间,从而获取与所述聊天群id和所述变更时间相对应的群成员集合;其中,所述群成员变更时间表为预先生成的用于存储各个所述聊天群中的聊天群id、群成员的变更时间和群成员集合之间的对应关系的数据表;已读时间查找模块,用于根据所述目标聊天消息所在的聊天群名称和所述群成员集合,从所述目标聊天消息对应的所述群消息已读时间表获取所述群成员集合中各个群成员针对所述目标聊天群中最后一条已读聊天消息的已读时间;其中,所述群消息已读时间表为预先生成的用于存储各个所述聊天群中的聊天群id、各个群成员的唯一标识和各个群成员的所述已读时间之间的对应关系的数据表;消息状态判断模块,用于遍历各个所述已读时间,若存在所述已读时间大于所述目标聊天消息的发送时间,则将该已读时间对应的群成员归类为已读成员;否则,将该群成员归类为未读成员;消息状态数统计模块,用于统计所述目标聊天消息对应的已读成员数和未读成员数。9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述的即时通讯中聊天消息状态更新方法。10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被
处理器执行时实现如权利要求1至7任一项所述的即时通讯中聊天消息状态更新方法。
技术总结
本申请提供一种即时通讯中聊天消息状态更新方法及装置,所述方法包括:在即时通讯中遍历各个聊天群各自在当前页面对应的多条聊天消息,通过在群成员变更时间表和群消息已读时间表中查找聊天消息对应的多个群成员以及每个群成员的已读时间,从而判断聊天消息对应的各个群成员是否为已读状态,直至获取到各条所述聊天消息当前对应的已读成员数和未读成员数。本申请能够降低已读和未读消息的记录及更新过程在服务器中的资源占用率,并提高即时通讯中聊天消息状态更新的效率和及时性,以提高即时通讯中聊天用户的用户体验。高即时通讯中聊天用户的用户体验。高即时通讯中聊天用户的用户体验。
技术研发人员:陈仕平 张光磊 徐绍祥
受保护的技术使用者:中企链信(北京)科技有限公司
技术研发日:2023.06.01
技术公布日:2023/9/22
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/