信息交互方法、介质、装置和计算设备与流程

文档序号:32254408发布日期:2022-11-19 03:58阅读:71来源:国知局
信息交互方法、介质、装置和计算设备与流程

1.本公开的实施方式涉及即时通信技术领域,更具体地,本公开的实施方式涉及一种信息交互方法、介质、装置和计算设备。


背景技术:

2.本部分旨在为权利要求书中陈述的本公开的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
3.随着网络与移动通信的发展,即时通讯工具的应用越来越广泛。在即时通讯工具中,可以通过建立聊天群组的方式来将具有相同爱好或者特征的用户集合到一起进行群聊,便于多个用户之间方便、高效地进行沟通和交流。
4.相关技术中,聊天群组通常设有固定的成员数量上限,针对一些特定的聊天群组提供了较大量级的成员数量的支持,比如能够支持的成员数量在万级别左右。但是,在聊天群组的成员数量不断增加的情况下,聊天群组的使用不够灵活。


技术实现要素:

5.本公开提供一种信息交互方法、介质、装置和计算设备,以解决在聊天群组的成员数量不断增加的情况下,聊天群组的使用不够灵活的问题。
6.在本公开实施方式的第一方面中,提供了一种信息交互方法,应用于服务端,该信息交互方法包括:
7.接收客户端发送的交互消息,交互消息包括群组标识,交互消息是客户端响应于群组成员发出交互消息的执行指令时发送的;
8.将交互消息投递至共享虚拟空间,共享虚拟空间与客户端建立有长连接通道,以使客户端通过长连接通道监听共享虚拟空间中的交互消息;不同的群组共享该共享虚拟空间。
9.在一种可能的实施方式中,该信息交互方法还包括:接收客户端发送的用于获取群组的初始未读消息计数的请求消息,请求消息携带有群组的群组标识和客户端记录的群组的最后已读消息标识;根据最后已读消息标识和群组标识,获取群组的初始未读消息计数以及初始未读消息计数对应的消息类型,消息类型包括非提醒消息、面向所有人消息和面向个人消息;将群组的初始未读消息计数以及初始未读消息计数对应的消息类型发送给客户端。
10.在一种可能的实施方式中,根据最后已读消息标识和群组标识,获取群组的初始未读消息计数以及初始未读消息计数对应的消息类型,包括:针对每个群组,执行如下步骤:若消息类型为非提醒消息,则根据群组标识,获取非提醒消息对应的第一缓存消息列表,第一缓存消息列表用于缓存最近的预设数量的非提醒消息的消息标识,预设数量为客户端外显消息计数的预设倍数;确定第一缓存消息列表中消息标识大于最后已读消息标识的消息数量为初始未读消息计数;若消息类型为面向所有人消息,则根据群组标识,获取面
向所有人消息对应的第二缓存消息列表,第二缓存消息列表用于缓存面向所有人消息的消息标识;确定第二缓存消息列表中面向所有人消息的消息标识大于最后已读消息标识的消息数量为初始未读消息计数;若消息类型为面向个人消息,则确定存储了交互消息的存储器中的面向个人消息的消息标识大于最后已读消息标识的消息数量为初始未读消息计数。
11.在一种可能的实施方式中,该信息交互方法还包括:接收客户端发送的待删除的交互消息,待删除的交互消息包括待删除的交互消息所属的群组标识和待删除的交互消息的消息标识;删除待删除的交互消息;发送删除交互消息的通知消息给客户端,通知消息携带有被删除的交互消息所属的群组标识和被删除的交互消息的消息标识。
12.在一种可能的实施方式中,接收客户端发送的交互消息之前,该信息交互方法还包括:响应于对群组配置用户权限的执行指令,存储对群组配置的用户权限,以允许拥有用户权限的群组成员在群组中发出交互消息。
13.第二方面,本公开实施例提供一种信息交互方法,应用于客户端,该信息交互方法包括:
14.响应于群组成员发出交互消息的执行指令,向服务端发送交互消息,交互消息包括群组标识;
15.在监听到服务端投递至共享虚拟空间中的交互消息时,根据群组标识,在群组标识对应的群聊界面显示交互消息的消息内容;共享虚拟空间与客户端建立有长连接通道,不同的群组共享该共享虚拟空间。
16.在一种可能的实施方式中,该信息交互方法还包括:响应于显示群组列表的执行指令,向服务端发送用于获取群组的初始未读消息计数的请求消息,请求消息携带有群组的群组标识和客户端记录的群组的最后已读消息标识;接收服务端发送的群组的初始未读消息计数以及初始未读消息计数对应的消息类型,消息类型包括非提醒消息、面向所有人消息和面向个人消息;根据群组的群组标识和消息类型,在群组列表的显示界面显示群组的初始未读消息计数。
17.在一种可能的实施方式中,在监听到服务端投递至共享虚拟空间中的交互消息之后,该信息交互方法还包括:若交互消息未在群聊界面显示,则根据交互消息的消息类型,将交互消息对应的群组的未读消息计数增加预设值;若交互消息已在群聊界面显示,则将交互消息的消息标识作为最后已读消息标识。
18.在一种可能的实施方式中,该信息交互方法还包括:响应于删除交互消息的执行指令,向服务端发送待删除的交互消息,待删除的交互消息包括待删除的交互消息所属的群组标识和待删除的交互消息的消息标识;接收服务端发送的删除交互消息的通知消息,通知消息携带有被删除的交互消息所属的群组标识和被删除的交互消息的消息标识;若被删除的交互消息的消息标识小于或等于群组标识对应的最后已读消息标识,则维持群组标识的未读消息计数;若被删除的交互消息的消息标识大于群组标识对应的最后已读消息标识,则将群组标识的未读消息计数减少预设值。
19.在一种可能的实施方式中,该信息交互方法还包括:监听其他用户发出的交互消息。
20.第三方面,本公开实施例提供一种信息交互装置,应用于服务端,该信息交互装置包括:
21.接收模块,用于接收客户端发送的交互消息,交互消息包括群组标识,交互消息是客户端响应于群组成员发出交互消息的执行指令时发送的;
22.投递模块,用于将交互消息投递至共享虚拟空间,共享虚拟空间与客户端建立有长连接通道,以使客户端通过长连接通道监听共享虚拟空间中的交互消息;不同的群组共享该共享虚拟空间。
23.在一种可能的实施方式中,接收模块还用于:接收客户端发送的用于获取群组的初始未读消息计数的请求消息,请求消息携带有群组的群组标识和客户端记录的群组的最后已读消息标识;信息交互装置还包括第一处理模块,用于根据最后已读消息标识和群组标识,获取群组的初始未读消息计数以及初始未读消息计数对应的消息类型,消息类型包括非提醒消息、面向所有人消息和面向个人消息;以及将群组的初始未读消息计数以及初始未读消息计数对应的消息类型发送给客户端。
24.在一种可能的实施方式中,第一处理模块具体用于:针对每个群组,执行如下步骤:若消息类型为非提醒消息,则根据群组标识,获取非提醒消息对应的第一缓存消息列表,第一缓存消息列表用于缓存最近的预设数量的非提醒消息的消息标识,预设数量为客户端外显消息计数的预设倍数;确定第一缓存消息列表中消息标识大于最后已读消息标识的消息数量为初始未读消息计数;若消息类型为面向所有人消息,则根据群组标识,获取面向所有人消息对应的第二缓存消息列表,第二缓存消息列表用于缓存面向所有人消息的消息标识;确定第二缓存消息列表中面向所有人消息的消息标识大于最后已读消息标识的消息数量为初始未读消息计数;若消息类型为面向个人消息,则确定存储了交互消息的存储器中的面向个人消息的消息标识大于最后已读消息标识的消息数量为初始未读消息计数。
25.在一种可能的实施方式中,接收模块还用于:接收客户端发送的待删除的交互消息,待删除的交互消息包括待删除的交互消息所属的群组标识和待删除的交互消息的消息标识;信息交互装置还包括第二处理模块,用于删除待删除的交互消息;以及发送删除交互消息的通知消息给客户端,通知消息携带有被删除的交互消息所属的群组标识和被删除的交互消息的消息标识。
26.在一种可能的实施方式中,信息交互装置还包括存储模块,用于接收模块接收客户端发送的交互消息之前,响应于对群组配置用户权限的执行指令,存储对群组配置的用户权限,以允许拥有用户权限的群组成员在群组中发出交互消息。
27.第四方面,本公开实施例提供一种信息交互装置,应用于客户端,该信息交互装置包括:
28.发送模块,用于响应于群组成员发出交互消息的执行指令,向服务端发送交互消息,交互消息包括群组标识;
29.处理模块,用于在监听到服务端投递至共享虚拟空间中的交互消息时,根据群组标识,在群组标识对应的群聊界面显示交互消息的消息内容;共享虚拟空间与客户端建立有长连接通道,不同的群组共享该共享虚拟空间。
30.在一种可能的实施方式中,发送模块还用于:响应于显示群组列表的执行指令,向服务端发送用于获取群组的初始未读消息计数的请求消息,请求消息携带有群组的群组标识和客户端记录的群组的最后已读消息标识;信息交互装置还包括接收模块,用于接收服务端发送的群组的初始未读消息计数以及初始未读消息计数对应的消息类型,消息类型包
括非提醒消息、面向所有人消息和面向个人消息;处理模块,还用于根据群组的群组标识和消息类型,在群组列表的显示界面显示群组的初始未读消息计数。
31.在一种可能的实施方式中,处理模块还用于:在监听到服务端投递至共享虚拟空间中的交互消息之后,若交互消息未在群聊界面显示,则根据交互消息的消息类型,将交互消息对应的群组的未读消息计数增加预设值;若交互消息已在群聊界面显示,则将交互消息的消息标识作为最后已读消息标识。
32.在一种可能的实施方式中,发送模块还用于:响应于删除交互消息的执行指令,向服务端发送待删除的交互消息,待删除的交互消息包括待删除的交互消息所属的群组标识和待删除的交互消息的消息标识;处理模块还用于接收服务端发送的删除交互消息的通知消息,通知消息携带有被删除的交互消息所属的群组标识和被删除的交互消息的消息标识;以及若被删除的交互消息的消息标识小于或等于群组标识对应的最后已读消息标识,则维持群组标识的未读消息计数;若被删除的交互消息的消息标识大于群组标识对应的最后已读消息标识,则将群组标识的未读消息计数减少预设值。
33.在一种可能的实施方式中,处理模块还用于:监听其他用户发出的交互消息。
34.第五方面,本公开实施例提供一种信息交互系统,包括:服务端和客户端;服务端,用于执行如本公开第一方面所述的信息交互方法;客户端,用于执行如本公开第二方面所述的信息交互方法。
35.第六方面,本公开实施例提供一种计算设备,包括:处理器,以及与处理器通信连接的存储器;
36.存储器存储计算机执行指令;
37.处理器执行存储器存储的计算机执行指令,以实现如本公开第一方面或第二方面所述的信息交互方法。
38.第七方面,本公开实施例提供一种存储介质,存储介质中存储有计算机程序指令,计算机程序指令被执行时,实现如本公开第一方面或第二方面所述的信息交互方法。
39.第八方面,本公开实施例提供一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时实现如本公开第一方面或第二方面所述的信息交互方法。
40.本公开实施例提供的信息交互方法、介质、装置和计算设备,通过服务端将客户端发送的交互消息投递至共享虚拟空间,共享虚拟空间与客户端建立有长连接通道,使得客户端在监听到服务端投递至共享虚拟空间中的交互消息时,根据群组标识,在群组标识对应的群聊界面显示交互消息的消息内容。由于本公开中,不同的群组共享一个共享虚拟空间,共享虚拟空间与客户端建立有一个长连接通道,对于同一个共享虚拟空间下的交互消息,可以保证交互消息实时触达用户,由于共享虚拟空间没有固定的人数上限,因此,本公开能够在聊天群组的成员数量不断增加的情况下,保证聊天群组使用的灵活性,以及保障交互消息触达的实时性。
附图说明
41.通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,其中:
42.图1为本公开实施例提供的一种应用场景示意图;
43.图2为本公开一实施例提供的信息交互方法的信令交互示意图;
44.图3为本公开一实施例提供的云圈包含的群聊列表的示意图;
45.图4为本公开一实施例提供的云圈中交互消息进行投递的示意图;
46.图5为本公开另一实施例提供的信息交互方法的信令交互示意图;
47.图6为本公开一实施例提供的信息交互装置的结构示意图;
48.图7为本公开另一实施例提供的信息交互装置的结构示意图;
49.图8为本公开一实施例提供的信息交互系统的示意图;
50.图9为本公开一实施例提供的存储介质示意图;
51.图10为本公开一实施例提供的计算设备的结构示意图。
52.在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
53.下面将参考若干示例性实施方式来描述本公开的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
54.本领域技术人员知道,本公开的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。本公开所涉及的数据可以为经用户授权或者经过各方充分授权的数据,本公开实施方式/实施例可以互相组合。
55.根据本公开的实施方式,提出了一种信息交互的方法、介质、装置和计算设备。
56.在本文中,需要理解的是,所涉及的术语:
57.云圈:云音乐产品内的一个兴趣聚合场景,用户可以加入云圈成为云圈成员,云圈下可以创建多个群(即聊天群组)用于云圈成员之间的互动交流;
58.群:通过文本、图片等不同类型消息进行多个用户之间沟通交流的聊天场景;
59.消息未读计数:群内消息总数与群成员已读消息数量之间的差值;
60.@计数:群成员收到的@消息的未读数量,@消息包括面向所有人消息(即@all消息)和面向个人消息(即@个人消息)。
61.此外,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
62.下面参考本公开的若干代表性实施方式,详细阐释本公开的原理和精神。
63.发明概述
64.本发明人发现,目前业界常见的聊天群产品通常都设有固定的人数上限,即便聊天群组内的成员并不一定同时在线,也无法支持超大群的存在。针对一些特定的聊天群组提供了较大量级的成员数量的支持,比如能够支持的成员数量在万级别左右。但是,在聊天群组的成员数量不断增加的情况下,由于聊天群组有固定的人数上限,导致聊天群组的使用不够灵活。另外,针对聊天群组内投递的消息写入为写扩散模式,每个聊天群组成员有自己的待收消息记录。聊天群组成员在聊天群组下的未读消息计数通过服务端进行维护。服
务端投递消息到客户端之后,客户端接收阅读消息之后通知服务端进行相应消息状态的更新以及未读消息计数的更新。但是,对于超大群,随着聊天群组成员人数的增加,一方面会带来服务端存储成本的增加,另一方面随着聊天群组成员数量的增加,每个聊天群组成员的未读计数更新的及时性也会带来问题,无法稳定高效的提供服务。
65.基于上述问题,本公开提供一种信息交互方法、介质、装置和计算设备,通过共享虚拟空间来实现超大规模聊天群组,突破传统聊天群组的人数上限,能够保证在聊天群组的成员数量不断增加的情况下,聊天群组使用的灵活性,以及保障消息触达的实时性;且通过客户端和服务端结合机制,实现超大规模聊天群组的未读消息计数以及@计数,能够及时更新未读消息计数以及@计数,降低服务端的存储成本,提供稳定高效的服务。
66.应用场景总览
67.首先参考图1对本公开提供的方案的应用场景进行示例说明。图1为本公开实施例提供的一种应用场景示意图,如图1所示,本应用场景中,用户通过手机101进入云圈,用户为云圈成员,手机101从服务器102获取云圈内包含的群聊列表并进行显示,在群聊列表中的每个群聊上显示有未读消息计数以及@计数。用户进入云圈内的一个群聊进行消息交互,具体地,用户在该群聊界面中发送交互消息,手机101将该交互消息发送给服务器102。服务器102将该交互消息投递至共享虚拟空间,手机101在监听到服务器102投递至共享虚拟空间中的交互消息时,在群聊界面显示交互消息的消息内容。其中,云圈成员的数量没有上限。
68.需要说明的是,图1仅是本公开实施例提供的一种应用场景的示意图,本公开实施例不对图1中包括的设备进行限定,也不对图1中设备之间的位置关系进行限定。例如,在图1所示的应用场景中,还可以包括数据存储设备,该数据存储设备相对服务器102可以是外部存储器,也可以是集成在服务器102中的内部存储器。
69.示例性方法
70.下面结合图1的应用场景,参考图2来描述根据本公开示例性实施方式的用于信息交互方法。需要注意的是,上述应用场景仅是为了便于理解本公开的精神和原理而示出,本公开的实施方式在此方面不受任何限制。相反,本公开的实施方式可以应用于适用的任何场景。
71.首先,通过具体实施例介绍信息交互方法。
72.图2为本公开一实施例提供的信息交互方法的信令交互示意图。本公开实施例的方法可以应用于计算设备中,该计算设备可以是服务器或服务器集群等。如图2所示,本公开实施例的方法包括:
73.s201、客户端响应于群组成员发出交互消息的执行指令,向服务端发送交互消息,交互消息包括群组标识。
74.相应地,服务端接收客户端发送的交互消息。
75.本公开实施例中,示例性地,群组成员比如为云圈成员,可以进入云圈包含的群聊列表中的群聊进行消息互动。图3为本公开一实施例提供的云圈包含的群聊列表的示意图,如图3所示,示出了云圈名称为云圈abc包含的群聊列表在客户端上的展现形态,云圈abc下存在讨论群这一群聊列表,群聊列表中包含群聊1至群聊4这4个群聊。云圈成员可以进入其中任一个群聊进行消息互动。
76.该步骤中,在群聊的群组成员发出交互消息后,客户端响应于群组成员发出交互消息的执行指令,向服务端发送交互消息,交互消息包括群组标识,该群组标识即群聊(identification,id),用于唯一标识一个群聊(群组)。可以理解,每个交互消息都有对应的群组标识。相应地,服务端接收客户端发送的交互消息。
77.s202、服务端将交互消息投递至共享虚拟空间,共享虚拟空间与客户端建立有长连接通道,以使客户端通过长连接通道监听共享虚拟空间中的交互消息;不同的群组共享该共享虚拟空间。
78.该步骤中,共享虚拟空间比如为一个实时聊天室。为了保证不同群组的交互消息能够实时触达,且分不同的群组进行展示提醒,因此,不同的群组共享该共享虚拟空间,而共享虚拟空间与客户端建立有一个长连接通道,则不同群组共享同一个长连接通道,便于交互消息的触达,同时可规避多个长连接存在时的连接维护问题。另外,共享虚拟空间没有固定的人数上限。示例性地,不同的群组使用一个实时聊天室进行对应,对于同一个聊天室下的交互消息,可以保证交互消息实时触达用户。群组本身作为一个业务实体进行抽象,通过群组标识与相应的群组建立映射关系。图4为本公开一实施例提供的云圈中交互消息进行投递的示意图,如图4所示,客户端与服务端的聊天室建立长连接通道,客户端通过长连接通道监听聊天室中的交互消息。云圈包含的群组比如为群组1至群组n。客户端响应于不同群组下群组成员发出交互消息的执行指令,向服务端发送交互消息。服务端存储交互消息,将交互消息投递至聊天室,即把交互消息投递到了长连接通道中,以使客户端通过长连接通道监听到聊天室中的交互消息。
79.s203、客户端在监听到服务端投递至共享虚拟空间中的交互消息时,根据群组标识,在群组标识对应的群聊界面显示交互消息的消息内容。
80.可以理解,服务端投递至共享虚拟空间中的交互消息包括群组标识,而群组标识用于标识交互消息所属的群组,因此,客户端在监听到服务端投递至共享虚拟空间中的交互消息时,可以根据群组标识,在群组标识对应的群聊界面显示交互消息的消息内容。
81.本公开实施例提供的信息交互方法,通过服务端将客户端发送的交互消息投递至共享虚拟空间,共享虚拟空间与客户端建立有长连接通道,使得客户端在监听到服务端投递至共享虚拟空间中的交互消息时,根据群组标识,在群组标识对应的群聊界面显示交互消息的消息内容。由于本公开实施例中,不同的群组共享一个共享虚拟空间,共享虚拟空间与客户端建立有一个长连接通道,对于同一个共享虚拟空间下的交互消息,可以保证交互消息实时触达用户,由于共享虚拟空间没有固定的人数上限,因此,能够在聊天群组的成员数量不断增加的情况下,保证聊天群组使用的灵活性,以及保障交互消息触达的实时性。
82.在上述实施例的基础上,可选的,服务端接收客户端发送的交互消息之前,本公开实施例提供的信息交互方法还可以包括:服务端响应于对群组配置用户权限的执行指令,存储对群组配置的用户权限,以允许拥有用户权限的群组成员在群组中发出交互消息。
83.示例性地,云圈用户与群组用户进行关联映射,同时支持云圈下所有用户在不同群组下发言,还支持对不同群组配置专属的用户权限,比如仅允许拥有相应权限的用户在对应群组下发言。服务端响应于对群组配置用户权限的执行指令,存储对群组配置的用户权限。另外,不同群组之间的交互消息的可见性权限,可以通过交互消息的附加字段进行隔离处置。
84.在上述实施例的基础上,可选的,本公开实施例提供的信息交互方法还可以包括:客户端监听其他用户发出的交互消息。
85.可以理解,客户端在响应于当前用户发出交互消息的执行指令,向服务端发送交互消息时,同时可以监听其他用户发出的交互消息,并在群聊界面显示其他用户发出的交互消息的消息内容。
86.图5为本公开另一实施例提供的信息交互方法的信令交互示意图。在上述实施例的基础上,本公开实施例对如何进行信息交进行进一步说明。如图5所示,本公开实施例的方法可以包括:
87.s501、客户端响应于显示群组列表的执行指令,向服务端发送用于获取群组的初始未读消息计数的请求消息,请求消息携带有群组的群组标识和客户端记录的群组的最后已读消息标识。
88.相应地,服务端接收客户端发送的用于获取群组的初始未读消息计数的请求消息。
89.可以理解,在保证交互消息实时触达用户的基础上,还需要实现用户维度的未读计数,以及聊天场景下基础的@计数的提醒能力。考虑到群聊下存在超大规模的群组成员数量,在计数维护上直接采用服务端进行计数更新存在维护数据量大、计数更新实时性弱等问题,因此,在计数上考虑客户端与服务端配合的方式进行计数计算。客户端每次打开群组列表时,向服务端获取当前已存在的各群组对应的未读计数,即客户端响应于显示群组列表的执行指令,向服务端发送用于获取群组的初始未读消息计数的请求消息,请求消息携带有群组的群组标识和客户端记录的群组的最后已读消息标识。相应地,服务端接收客户端发送的用于获取群组的初始未读消息计数的请求消息。
90.s502、服务端根据最后已读消息标识和群组标识,获取群组的初始未读消息计数以及初始未读消息计数对应的消息类型。
91.其中,消息类型包括非提醒消息、面向所有人消息和面向个人消息。
92.该步骤中,服务端在接收到客户端发送的用于获取群组的初始未读消息计数的请求消息后,可以根据请求消息携带的群组的群组标识和客户端记录的群组的最后已读消息标识,获取群组的初始未读消息计数以及初始未读消息计数对应的消息类型。
93.进一步地,可选的,服务端根据最后已读消息标识和群组标识,获取群组的初始未读消息计数以及初始未读消息计数对应的消息类型,可以包括:针对每个群组,执行如下步骤:若消息类型为非提醒消息,则根据群组标识,获取非提醒消息对应的第一缓存消息列表,第一缓存消息列表用于缓存最近的预设数量的非提醒消息的消息标识,预设数量为客户端外显消息计数的预设倍数;确定第一缓存消息列表中消息标识大于最后已读消息标识的消息数量为初始未读消息计数;若消息类型为面向所有人消息,则根据群组标识,获取面向所有人消息对应的第二缓存消息列表,第二缓存消息列表用于缓存面向所有人消息的消息标识;确定第二缓存消息列表中面向所有人消息的消息标识大于最后已读消息标识的消息数量为初始未读消息计数;若消息类型为面向个人消息,则确定存储了交互消息的存储器中的面向个人消息的消息标识大于最后已读消息标识的消息数量为初始未读消息计数。
94.示例性地,服务端不针对每个用户维护其未读计数,而是整体维护一份新消息列表。具体地,首先,针对群组内的每一条交互消息生成一份全局唯一且单调递增的交互消息
id;该交互消息id比如为采用基于底层数据库主键自增id方式进行实现。其次,服务端对每一个交互消息进行数据库持久化存储的同时,维护一份有限长度的最新消息列表有序缓存,以消息类型为非提醒消息为例,即维护用于缓存最近的预设数量的交互消息的消息标识的第一缓存消息列表,预设数量(即缓存消息列表的长度)比如为客户端外显消息计数的1.5倍。考虑交互消息存在被动删除(比如交互消息包含敏感内容,需要删除)等状态行为,因此,需要冗余缓存消息列表长度,避免出现消息计数不一致的问题。
95.该实施例中,若消息类型为非提醒消息,则服务端根据每个群组对应的第一缓存消息列表进行计算,查找客户端记录的群组的最后已读消息标识在第一缓存消息列表中的排序位置,确定第一缓存消息列表中消息标识大于最后已读消息标识的消息数量为初始未读消息计数,即得到了当前使用周期内的初始未读消息计数。若消息类型为面向所有人消息,则服务端根据群组标识,获取面向所有人消息对应的第二缓存消息列表;确定第二缓存消息列表中面向所有人消息的消息标识大于最后已读消息标识的消息数量为初始未读消息计数;若消息类型为面向个人消息,存储了交互消息的存储器比如为数据库,则服务端根据群组标识,通过数据库进行偏移查询,确定存储了交互消息的存储器中的面向个人消息的消息标识大于最后已读消息标识的消息数量为初始未读消息计数。
96.s503、服务端将群组的初始未读消息计数以及初始未读消息计数对应的消息类型发送给客户端。
97.相应地,客户端接收服务端发送的群组的初始未读消息计数以及初始未读消息计数对应的消息类型。
98.该步骤中,服务端在获得了群组的初始未读消息计数以及初始未读消息计数对应的消息类型后,可以将群组的初始未读消息计数以及初始未读消息计数对应的消息类型发送给客户端。相应地,客户端接收服务端发送的群组的初始未读消息计数以及初始未读消息计数对应的消息类型。
99.s504、客户端根据群组的群组标识和消息类型,在群组列表的显示界面显示群组的初始未读消息计数。
100.该步骤中,客户端在接收到服务端发送的群组的初始未读消息计数以及初始未读消息计数对应的消息类型后,可以根据群组的群组标识和消息类型,在群组列表的显示界面中每个群组上显示不同消息类型对应的交互消息的初始未读消息计数。比如,在一群组上显示有非提醒消息的初始未读消息计数、面向所有人消息的初始未读消息计数以及面向个人消息的初始未读消息计数。
101.进一步地,可选的,客户端在监听到服务端投递至共享虚拟空间中的交互消息之后,本公开实施例提供的信息交互方法还可以包括:若交互消息未在群聊界面显示,则客户端根据交互消息的消息类型,将交互消息对应的群组的未读消息计数增加预设值;若交互消息已在群聊界面显示,则客户端将交互消息的消息标识作为最后已读消息标识。
102.可以理解,客户端接收到服务端下发的每一条交互消息,在交互消息进行本地曝光展示(即在群聊界面显示)之后,客户端需要将交互消息的消息标识作为最后已读消息标识,即客户端本地记录群组的最后已读消息标识。当服务端有新的交互消息下发且客户端本地未曝光(即未在群聊界面显示)时,则由客户端根据交互消息的消息类型,将交互消息对应的群组的未读消息计数增加预设值,即客户端本地追加未读计数,其中,预设值比如为
1。
103.s505、客户端响应于群组成员发出交互消息的执行指令,向服务端发送交互消息,交互消息包括群组标识。
104.相应地,服务端接收客户端发送的交互消息。
105.该步骤的具体描述可以参见图2所示实施例中s201的相关描述,此处不再赘述。
106.s506、服务端将交互消息投递至共享虚拟空间,共享虚拟空间与客户端建立有长连接通道,以使客户端通过长连接通道监听共享虚拟空间中的交互消息;不同的群组共享该共享虚拟空间。
107.该步骤的具体描述可以参见图2所示实施例中s202的相关描述,此处不再赘述。
108.s507、客户端在监听到服务端投递至共享虚拟空间中的交互消息时,根据群组标识,在群组标识对应的群聊界面显示交互消息的消息内容。
109.该步骤的具体描述可以参见图2所示实施例中s203的相关描述,此处不再赘述。
110.s508、客户端响应于删除交互消息的执行指令,向服务端发送待删除的交互消息,待删除的交互消息包括待删除的交互消息所属的群组标识和待删除的交互消息的消息标识。
111.相应地,服务端接收客户端发送的待删除的交互消息。
112.示例性地,群组成员删除群聊界面中的一交互消息后,客户端响应于删除交互消息的执行指令,向服务端发送待删除的交互消息,待删除的交互消息包括待删除的交互消息所属的群组标识和待删除的交互消息的消息标识。相应地,服务端接收客户端发送的待删除的交互消息。
113.s509、服务端删除待删除的交互消息。
114.该步骤中,服务端可以根据待删除的交互消息所属的群组标识和待删除的交互消息的消息标识,从已存储的交互消息列表中,删除待删除的交互消息。
115.s510、服务端发送删除交互消息的通知消息给客户端,通知消息携带有被删除的交互消息所属的群组标识和被删除的交互消息的消息标识。
116.相应地,客户端接收服务端发送的删除交互消息的通知消息。
117.该步骤中,服务端在删除了待删除的交互消息后,发送删除交互消息的通知消息给客户端,相应地,客户端接收服务端发送的删除交互消息的通知消息。
118.s511、若被删除的交互消息的消息标识小于或等于群组标识对应的最后已读消息标识,则客户端维持群组标识的未读消息计数。
119.可以理解,客户端在接收到服务端发送的删除交互消息的通知消息时,比对群组标识对应的最后已读消息标识与被删除的交互消息的消息标识,若被删除的交互消息的消息标识小于或等于群组标识对应的最后已读消息标识,则客户端维持群组标识的未读消息计数,即保持未读消息计数。
120.s512、若被删除的交互消息的消息标识大于群组标识对应的最后已读消息标识,则客户端将群组标识的未读消息计数减少预设值。
121.该步骤中,客户端比对群组标识对应的最后已读消息标识与被删除的交互消息的消息标识,若被删除的交互消息的消息标识大于群组标识对应的最后已读消息标识,则客户端将群组标识的未读消息计数减少预设值,预设值比如为1。
122.需要说明的是,本公开实施例不对s501、s505以及s508步骤执行的先后顺序进行限定。
123.本公开实施例提供的信息交互方法,通过服务端将客户端发送的交互消息投递至共享虚拟空间,共享虚拟空间与客户端建立有长连接通道,使得客户端在监听到服务端投递至共享虚拟空间中的交互消息时,根据群组标识,在群组标识对应的群聊界面显示交互消息的消息内容。由于本公开实施例中,不同的群组共享一个共享虚拟空间,共享虚拟空间与客户端建立有一个长连接通道,而共享虚拟空间没有固定的人数上限,因此,能够在聊天群组的成员数量不断增加的情况下,保证聊天群组使用的灵活性,以及保障交互消息触达的实时性。在此基础上,通过客户端和服务端的结合机制,实现了不同消息类型的未读消息计数,能够及时更新未读消息计数,从而降低服务端的存储成本,提供稳定高效的服务。
124.示例性装置
125.在介绍了本公开示例性实施方式的介质之后,接下来,参考图6和图7对本公开示例性实施方式的信息交互装置进行说明。本公开示例性实施方式的装置,可以实现前述信息交互方法实施例中的各个过程,并达到相同的功能和效果。
126.图6为本公开一实施例提供的信息交互装置的结构示意图,应用于服务端。如图6所示,本公开实施例的信息交互装置600包括:接收模块601和投递模块602。其中:
127.接收模块601,用于接收客户端发送的交互消息,交互消息包括群组标识,交互消息是客户端响应于群组成员发出交互消息的执行指令时发送的。
128.投递模块602,用于将交互消息投递至共享虚拟空间,共享虚拟空间与客户端建立有长连接通道,以使客户端通过长连接通道监听共享虚拟空间中的交互消息;不同的群组共享该共享虚拟空间。
129.在一种可能的实施方式中,接收模块601还可以用于:接收客户端发送的用于获取群组的初始未读消息计数的请求消息,请求消息携带有群组的群组标识和客户端记录的群组的最后已读消息标识;信息交互装置还包括第一处理模块603,用于根据最后已读消息标识和群组标识,获取群组的初始未读消息计数以及初始未读消息计数对应的消息类型,消息类型包括非提醒消息、面向所有人消息和面向个人消息;以及将群组的初始未读消息计数以及初始未读消息计数对应的消息类型发送给客户端。
130.在一种可能的实施方式中,第一处理模块603可以具体用于:针对每个群组,执行如下步骤:若消息类型为非提醒消息,则根据群组标识,获取非提醒消息对应的第一缓存消息列表,第一缓存消息列表用于缓存最近的预设数量的非提醒消息的消息标识,预设数量为客户端外显消息计数的预设倍数;确定第一缓存消息列表中消息标识大于最后已读消息标识的消息数量为初始未读消息计数;若消息类型为面向所有人消息,则根据群组标识,获取面向所有人消息对应的第二缓存消息列表,第二缓存消息列表用于缓存面向所有人消息的消息标识;确定第二缓存消息列表中面向所有人消息的消息标识大于最后已读消息标识的消息数量为初始未读消息计数;若消息类型为面向个人消息,则确定存储了交互消息的存储器中的面向个人消息的消息标识大于最后已读消息标识的消息数量为初始未读消息计数。
131.在一种可能的实施方式中,接收模块601还可以用于:接收客户端发送的待删除的交互消息,待删除的交互消息包括待删除的交互消息所属的群组标识和待删除的交互消息
的消息标识;信息交互装置还包括第二处理模块604,用于删除待删除的交互消息;以及发送删除交互消息的通知消息给客户端,通知消息携带有被删除的交互消息所属的群组标识和被删除的交互消息的消息标识。
132.在一种可能的实施方式中,信息交互装置还包括存储模块605,用于接收模块接收客户端发送的交互消息之前,响应于对群组配置用户权限的执行指令,存储对群组配置的用户权限,以允许拥有用户权限的群组成员在群组中发出交互消息。
133.本公开实施例的装置,可以用于执行上述任一方法实施例中服务端的方案,其实现原理和技术效果类似,此处不再赘述。
134.图7为本公开另一实施例提供的信息交互装置的结构示意图,应用于客户端。如图7所示,本公开实施例的信息交互装置700包括:发送模块701和处理模块702。其中:
135.发送模块701,用于响应于群组成员发出交互消息的执行指令,向服务端发送交互消息,交互消息包括群组标识。
136.处理模块702,用于在监听到服务端投递至共享虚拟空间中的交互消息时,根据群组标识,在群组标识对应的群聊界面显示交互消息的消息内容;共享虚拟空间与客户端建立有长连接通道,不同的群组共享该共享虚拟空间。
137.在一种可能的实施方式中,发送模块701还可以用于:响应于显示群组列表的执行指令,向服务端发送用于获取群组的初始未读消息计数的请求消息,请求消息携带有群组的群组标识和客户端记录的群组的最后已读消息标识;信息交互装置还包括接收模块703,用于接收服务端发送的群组的初始未读消息计数以及初始未读消息计数对应的消息类型,消息类型包括非提醒消息、面向所有人消息和面向个人消息;处理模块702,还可以用于根据群组的群组标识和消息类型,在群组列表的显示界面显示群组的初始未读消息计数。
138.在一种可能的实施方式中,处理模块702还可以用于:在监听到服务端投递至共享虚拟空间中的交互消息之后,若交互消息未在群聊界面显示,则根据交互消息的消息类型,将交互消息对应的群组的未读消息计数增加预设值;若交互消息已在群聊界面显示,则将交互消息的消息标识作为最后已读消息标识。
139.在一种可能的实施方式中,发送模块701还可以用于:响应于删除交互消息的执行指令,向服务端发送待删除的交互消息,待删除的交互消息包括待删除的交互消息所属的群组标识和待删除的交互消息的消息标识;处理模块702还用于接收服务端发送的删除交互消息的通知消息,通知消息携带有被删除的交互消息所属的群组标识和被删除的交互消息的消息标识;以及若被删除的交互消息的消息标识小于或等于群组标识对应的最后已读消息标识,则维持群组标识的未读消息计数;若被删除的交互消息的消息标识大于群组标识对应的最后已读消息标识,则将群组标识的未读消息计数减少预设值。
140.在一种可能的实施方式中,处理模块702还可以用于:监听其他用户发出的交互消息。
141.本公开实施例的装置,可以用于执行上述任一方法实施例中客户端的方案,其实现原理和技术效果类似,此处不再赘述。
142.图8为本公开一实施例提供的信息交互系统的示意图,如图8所示,业务处理系统800包括服务端801和客户端802,服务端801与客户端802通信连接。其中,服务端801可以采用图6装置实施例的结构,其对应地,可以执行图2或图5实施例的技术方案,其实现原理和
技术效果类似,此处不再赘述。客户端802可以采用图7装置实施例的结构,其对应地,可以执行图2或图5实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
143.示例性介质
144.在介绍了本公开示例性实施方式的方法之后,接下来,参考图9对本公开示例性实施方式的存储介质进行说明。
145.图9为本公开一实施例提供的存储介质示意图。参考图9所示,存储介质900中存储着根据本公开的实施方式的用于实现上述方法的程序产品,其可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本公开的程序产品不限于此。
146.所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
147.可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质。
148.可以以一种或多种程序设计语言的任意组合来编写用于执行本公开公开操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备。
149.示例性计算设备
150.在介绍了本公开示例性实施方式的方法、介质和装置之后,接下来,参考图10对本公开示例性实施方式的计算设备进行说明。
151.图10显示的计算设备1000仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
152.图10为本公开一实施例提供的计算设备的结构示意图,如图10所示,计算设备1000以通用计算设备的形式表现。计算设备1000的组件可以包括但不限于:上述至少一个处理单元1001、上述至少一个存储单元1002,连接不同系统组件(包括处理单元1001和存储单元1002)的总线1003。示例性地,处理单元1001可以具体为处理器,存储单元1002存储计算机执行指令,处理单元1001执行存储单元1002存储的计算机执行指令,以实现上述的信息交互方法。
153.总线1003包括数据总线、控制总线和地址总线。
154.存储单元1002可以包括易失性存储器形式的可读介质,例如随机存取存储器(ram)10021和/或高速缓存存储器10022,可以进一步包括非易失性存储器形式的可读介质,例如只读存储器(rom)10023。
155.存储单元1002还可以包括具有一组(至少一个)程序模块10024的程序/实用工具10025,这样的程序模块10024包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
156.计算设备1000也可以与一个或多个外部设备1004(例如键盘、指向设备等)通信。这种通信可以通过输入/输出(i/o)接口1005进行。并且,计算设备1000还可以通过网络适配器1006与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图10所示,网络适配器1006通过总线1003与计算设备1000的其它模块通信。应当理解,尽管图中未示出,可以结合计算设备1000使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
157.应当注意,尽管在上文详细描述中提及了信息交互装置的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
158.此外,尽管在附图中以特定顺序描述了本公开方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
159.虽然已经参考若干具体实施方式描述了本公开的精神和原理,但是应该理解,本公开并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本公开旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1