一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

在线房间的信息同步方法、装置、电子设备和存储介质与流程

2022-11-19 09:42:42 来源:中国专利 TAG:


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.在所述目标组件的优先级大于预设优先级阈值的情况下,获取针对所述目标组件的悲观锁;所述悲观锁用于指示服务端具有修改所述目标组件信息的唯一权限;
43.响应于获取所述悲观锁,将所述目标组件信息中的组件状态更新为所述目标状态,并按照预设值对所述组件版本进行更新。
44.在一种可能的实施方式中,所述第一更新模块,还用于
45.在所述目标组件的优先级不大于所述预设优先级阈值的情况下,将所述目标组件的组件标识作为所述目标组件的键信息,将所述目标组件的优先级作为所述键信息的得分,将所述目标状态作为所述目标组件的值信息,得到具有有序集合数据结构的目标存储数据;
46.利用所述目标存储数据,对具有所述有序集合数据结构的各个已存储数据进行去重处理,得到去重后的各个存储数据;
47.响应于预先创建的异步更新任务,按照得分从高到低的顺序,依次基于所述去重后的每个存储数据中的值信息,对每个所述去重后的存储数据对应的组件的组件状态进行更新。
48.在一种可能的实施方式中,所述装置还包括:
49.创建模块,用于在所述获取针对任一在线房间的更新请求之前,响应于针对所述在线房间的功能创建请求,生成所述功能创建请求对应的待创建功能组件的组件信息;
50.将所述待创建功能组件的组件信息添加至所述在线房间对应的第一房间信息,得到更新后的第一房间信息;所述第一房间信息包括所述在线房间的属性信息和各个所述已创建功能组件的组件信息;
51.对所述更新后的第一房间信息的属性信息中房间版本进行更新,得到包括新的房间版本的第二房间信息;
52.基于第二房间信息,生成第二更新信息,并将所述第二更新信息反馈至所述客户端,以使所述客户端基于所述第二更新信息,在本地创建所述待创建功能组件。
53.在一种可能的实施方式中,所述创建模块,在所述生成所述功能创建请求对应的待创建功能组件的组件信息时,用于生成所述待创建功能组件的组件标识,并确定所述待创建功能组件的组件状态和组件版本;
54.从多个预设序列化方式中,选取目标序列化方式,并利用所述目标序列化方式对所述待创建功能组件的原始组件数据进行序列化处理,得到序列化后的组件数据;
55.将所述组件标识、所述组件状态、所述组件版本、所述序列化后的组件数据和所述目标序列化方式对应的类型指示信息,确定为所述待创建功能组件的组件信息。
56.第四方面,本公开实施例还提供了一种在线房间的信息同步装置,包括:
57.第二获取模块,用于获取服务端发送的第一更新信息;所述第一更新信息包括更新后的目标组件信息和更新后的属性信息;
58.确定模块,用于在本地加载的在线房间的本地房间版本、低于所述更新后的属性信息指示的更新后的房间版本的情况下,确定所述更新后的目标组件信息携带的目标组件标识;
59.第二更新模块,用于将与所述目标组件标识相匹配的目标组件的本地组件信息,更新为所述更新后的目标组件信息,并将所述本地房间版本更新为所述更新后的房间版本。
60.在一种可能的实施方式中,所述第二更新模块,在所述将与所述目标组件标识相匹配的目标组件的本地组件信息,更新为所述更新后的目标组件信息时,用于在所述本地组件信息中的本地组件版本,低于所述更新后的目标组件信息中更新后的组件版本的情况下,将所述本地组件信息,更新为所述更新后的目标组件信息。
61.在一种可能的实施方式中,所述第二获取模块,还用于接收所述服务端发送的第二更新信息;所述第二更新信息包括第二房间信息;所述第二房间信息包括新的房间版本和待创建功能组件的组件信息;
62.所述第二更新模块,还用于在本地加载的在线房间的本地房间版本低于所述新的房间版本的情况下,基于待创建功能组件的组件信息,创建所述待创建功能组件,并将所述本地房间版本更新为所述新的房间版本。
63.第五方面,本公开可选实现方式还提供一种电子设备,处理器、存储器,所述存储器存储有所述处理器可执行的机器可读指令,所述处理器用于执行所述存储器中存储的机器可读指令,所述机器可读指令被所述处理器执行时,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤;或者,所述机器可读指令被所述处理器执行时,所述机器可读指令被所述处理器执行时执行上述第二方面,或第二方面中任一种可能的实施方式中的步骤。
64.第六方面,本公开可选实现方式还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被运行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤;或者,该计算机可读存储介质上存储有计算机程序,该计算机程序被运行时执行上述第二方面,或第二方面中任一种可能的实施方式中的步骤。
65.关于上述在线房间的信息同步装置、电子设备、及计算机可读存储介质的效果描述参见上述在线房间的信息同步方法的说明,这里不再赘述。
66.本公开实施例提供的应用于服务端的在线房间的信息同步方法、装置、电子设备和存储介质,利用能够唯一标识组件的组件标识,可以从在线房间包括的已创建功能组件的组件信息中,准确筛选出需要修改的目标组件的目标组件信息。利用更新请求指示的目标状态,对目标组件信息中的组件状态和组件版本进行更新,得到更新后的目标组件信息,同时对在线房间的属性信息指示的房间版本进行更新,得到更新后的属性信息,可以实现每一次修改对应于一个版本的目标组件信息和一个版本的属性信息,实现了组件信息和属性信息与版本之间的关联。利用更新后的目标组件信息和更新后的属性信息,生成在线房间的第一更新信息,并反馈至登录在线房间的客户端,客户端可以根据第一更新信息中具有关联的组件信息、属性信息和版本,对本地加载的目标组件的组件信息和在线房间的属性信息进行及时修改,从而实现客户端与服务端之间信息和功能的及时同步。
67.进一步的,本公开实施例提供的应用于客户端的在线房间的信息同步方法、装置、电子设备和存储介质,客户端通过对比本地房间版本和更新后的属性信息指示的更新后的房间版本,可以确定客户端本地加载的房间版本是否为最新版本,进而准确确定客户端与服务端之间的信息是否同步。在确定本地房间版本低于更新后的房间版本的情况下,通过将目标组件的本地组件信息,更新为更新后的目标组件信息,并将本地房间版本更新为更新后的房间版本,可以实现对目标组件的组件信息和在线房间的属性信息的及时修改,进而实现客户端与服务端之间信息的及时同步。
68.为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
69.为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
70.图1示出了本公开实施例所提供的一种应用于服务端的在线房间的信息同步方法的流程图;
71.图2示出了本公开实施例所提供的一种应用于客户端的在线房间的信息同步方法的流程图;
72.图3示出了本公开实施例所提供的一种应用于服务端的在线房间的信息同步装置的示意图;
73.图4示出了本公开实施例所提供的一种应用于客户端的在线房间的信息同步装置
的示意图;
74.图5示出了本公开实施例所提供的一种电子设备的结构示意图。
具体实施方式
75.为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
76.另外,本公开实施例中的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。
77.在本文中提及的“多个或者若干个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
78.经研究发现,在线房间作为一种能够为多用户提供线上沟通交流功能的虚拟空间,极大的便利了人们的生活。例如,针对在线教室而言,其是指教师可以在线讲授课程内容,学生可以在线地看到教师的授课内容,并且教师和学生可以同时进行一些教学互动行为的虚拟空间。在线房间的存在可以帮助多用户(如教师和学生)跨越物理位置限制实现线上沟通。在线房间可以包括具有不同功能的功能组件,如全员禁言功组件、投票功能组件等。在沟通过程中,房间创建方可以根据实际的沟通进度和情况,对功能组件对应的功能进行开启与关闭的控制。例如,在提问期间,房间创建方关闭全员禁言组件对应的全员禁言功能后,允许全员自由发言。而在房间创建方更改功能组件对应的功能之后,如何将指示功能更改的信息及时同步至各个客户端,以完成客户端的功能同步更改,成为了亟需解决的问题。
79.基于上述研究,本公开提供了一种应用在线房间的信息同步方法、装置、电子设备和存储介质,利用能够唯一标识组件的组件标识,可以从在线房间包括的已创建功能组件的组件信息中,准确筛选出需要修改的目标组件的目标组件信息。利用更新请求指示的目标状态,对目标组件信息中的组件状态和组件版本进行更新,得到更新后的目标组件信息,同时对在线房间的属性信息指示的房间版本进行更新,得到更新后的属性信息,可以实现每一次修改对应于一个版本的目标组件信息和一个版本的属性信息,实现了组件信息和属性信息与版本之间的关联。利用更新后的目标组件信息和更新后的属性信息,生成在线房间的第一更新信息,并反馈至登录在线房间的客户端,客户端可以根据第一更新信息中具有关联的组件信息、属性信息和版本,对本地加载的目标组件的组件信息和在线房间的属性信息进行及时修改,从而实现客户端与服务端之间信息和功能的及时同步。
80.针对以上方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,
因此,上述问题的发现过程以及下文中本公开针对上述问题所提出的解决方案,都应该是发明人在本公开过程中对本公开做出的贡献。
81.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
82.为便于对本实施例进行理解,首先对本公开实施例所公开的一种在线房间的信息同步方法进行详细介绍,本公开实施例所提供的在线房间的信息同步方法的执行主体一般为具有一定计算能力的终端设备或其他处理设备,其中终端设备可以为用户设备(user equipment,ue)、移动设备、用户终端、终端、个人数字处理设备(personal digital assistant,pda)、手持设备、电子设备等;在一些可能的实现方式中,该在线房间的信息同步方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
83.下面以执行主体为服务端为例对本公开实施例提供的在线房间的信息同步方法加以说明。
84.如图1所示,为本公开实施例提供的一种应用于服务端的在线房间的信息同步方法的流程图,可以包括以下步骤:
85.s101:获取针对任一在线房间的更新请求。
86.这里,在线房间是一种能够为多用户提供线上沟通交流功能的虚拟空间。例如,在线房间可以为在线教室,在线会议房间、在线聊天房间等。
87.以在线房间为在线教室为例,对在线房间的信息同步方法进行说明。在线教室是指教师可以在线讲授课程内容,学生可以在线学习教师的授课内容,并且教师和学生可以同时进行一些教学互动行为的虚拟空间。在线教室可以为服务端在响应于教师客户端发起的教室创建请求后创建的,教师客户端可以为教师使用的客户端。服务端可以管理至少一个在线教室,不同的在线教室可以由不同的教师创建。
88.更新请求可以为对在线房间的任一信息进行更改的请求。例如,更改在线房间中的某一功能组件的状态的请求、更改在线房间的房间状态的请求、更改在线房间中展示的信息的请求等。
89.在线房间中可以包括不同的功能组件,不同的功能组件对应于不同的组件功能。例如,全员禁言组件具有控制用户是否能够自由发言的功能、签到功能具有帮助用户进行签到的功能等。每个功能组件的功能可以对应于不同的状态。例如,签到功能组件对应的签到功能可以对应存在允许签到状态和不允许签到状态,全员禁言功能可以对应存在允许自由发言的状态和不允许发言的状态。不同功能组件所具有的功能,可以由不同的功能端管理。
90.以更改任一在线教室中的目标组件对应的目标功能为例,教师可以在教师客户端调用目标功能对应的服务端,向在线教室对应的服务端发起更新请求。其中,更新请求中可以携带有目标组件的目标状态和目标组件的组件标识,组件标识用于对组件进行唯一标识,目标状态为对目标组件对应的功能进行修改后需要达到的状态。例如,目标组件为全员禁言组件,目标状态为自由发言状态,则对全员禁言功能进行修改后指示的状态为:允许学生自由发言。
91.s102:根据更新请求中携带的组件标识,从在线房间包括的各个已创建功能组件的组件信息中,筛选出与组件标识相匹配的目标组件的目标组件信息。
92.这里,在线房间的全部信息可以以结构化的房间信息表征。具体的,结构化的房间信息中可以包括在线房间的属性信息和在线房间包括的各个已创建功能组件的组件信息。其中,已创建功能组件即为在线房间中包括的各个功能组件。
93.属性信息用于表征在线房间的状态、房间版本、房间标识、创建时间、更新时间等信息。组件信息用于表征与组件相关的全部信息,具体的,组件信息可以包括组件标识、组件状态、组件版本、组件数据、组件的数据类型等信息。组件的数据可以为对组件对应的原始组件数据进行序列化处理后得到的数据,原始组件数据即为组件对应的所有数据。组件的数据类型用于指示对原始组件数据进行序列化处理的方式,例如,若组件的数据类型对应的数值为1,则表示序列化处理的方式为json序列化;若组件的数据类型对应的数值为2,则表示序列化处理的方式为protobuff序列化。其中,json序列化即将json数据对象处理为json字符串的过程,以方便数据的传输;protobuff是一种将结构化数据进行序列化和反序列化的方法。
94.示例性的,如下为房间标识为111的在线房间对应的结构化的房间信息:
[0095][0096]
[0097]
上述房间标识为111的在线房间包括的已创建功能组件包括连麦组件和投票组件,连麦组件对应于连麦功能,投票组件对应于投票功能。房间状态用于指示在线房间的当前状态,例如,房间状态可以指示在线房间当前处于不可使用状态、指示在线房间当前处于上课状态、指示在线房间当前处于课件休息状态等。在线房间中包括的每个组件对应于同样的数据结构。这样,利用结构化的组件信息表征在线房间中的已创建功能组件,在后续产生在在线房间中扩展新的功能需求,只需要按照上述数据结构即可实现对新的功能对应的功能组件的创建,提高了在线房间中进行功能扩展的便利性。
[0098]
更新请求中携带的组件标识,即为需要修改的目标组件的组件标识。目标组件信息即为目标组件的组件信息。
[0099]
以在线房间为在线教室为例,服务端在获取到更新请求之后,可以先对更新请求进行解析,确定其中包括的组件标识和目标状态。然后,可以从教师客户端所连接的在线教室的房间信息中,确定出在线教室中包括的各个已创建功能组件分别对应的组件信息。之后,可以根据各个已创建功能组件的组件信息中包括的组件标识,从各个已创建功能组件中,确定携带有与更新请求携带的组件标识一致的组件标识的目标组件,将该目标组件的组件信息作为目标组件信息。
[0100]
可选的,更新请求中还可以携带有在线房间的房间标识,服务端在获取更新请求之后,可以根据从更新请求中解析出的房间标识,从管理的多个在线房间中,确定出与更新请求中的房间标识匹配的在线房间,进而,可以从该在线房间包括的各个已创建功能组件的组件信息中,筛选出目标组件信息。
[0101]
仍以上述房间标识为111的在线房间对应的结构化的房间信息为例,在更新请求中携带的组件标识为“vote”的情况下,筛选出的目标组件信息即为:
[0102][0103][0104]
s103:根据更新请求指示的目标状态,更新目标组件信息中的组件状态和组件版本,得到更新后的目标组件信息,并更新在线房间的属性信息指示的房间版本,得到更新后的属性信息。
[0105]
示例性的,在确定目标组件信息之后,可以将目标组件信息中指示的目标组件的组件状态,修改为更新请求中指示的目标状态,得到修改的组件状态,同时对目标组件信息包括的组件版本进行更新,得到修改后的组件版本。然后,可以将修改后的组件状态、修改后的组件版本和目标组件信息中未修改的信息,作为更新后的目标组件信息。
[0106]
并且,在在线房间包括的目标组件信息被修改的情况下,在线房间的版本也将发生迭代。因此,在得到更新后的目标组件信息之后,还可以对在线房间的属性信息指示的房间版本进行更新,得到更新后的房间版本。同时,还可以根据当前时间,对属性信息中的更
新时间进行更新,得到更新后的更新时间。之后,可以将更新后的房间版本、更新后的更新时间和属性信息中未修改的信息,作为更新后的属性信息。
[0107]
可选的,若目标组件的组件状态的修改,将影响组件数据,则可以在将目标组件的组件状态修改为目标状态之后,对目标组件信息中的组件数据进行修改,得到与目标状态相匹配的、修改后的组件数据。之后,可以将修改后的组件状态、修改后的组件版本、修改后的组件数据和目标组件信息中未修改的信息,作为更新后的目标组件信息。
[0108]
其中,对目标组件信息中的组件数据进行修改的过程,可以为先对目标组件信息中的组件数据进行反序列化,得到反序列化后的组件数据,再根据目标状态,对返序列化后的组件数据进行更新,得到更新后的组件数据。之后,对更新后的组件数据进行序列化处理,得到与目标状态相匹配的、修改后的组件数据。
[0109]
在一种实施例中,针对s103中“根据更新请求指示的目标状态,更新目标组件信息中的组件状态和组件版本”的步骤,还可以按照以下步骤实施:
[0110]
s103-1:确定目标组件的优先级。
[0111]
这里,在线房间中的各个已创建功能组件,均可以存在预先指定的优先级,组件的优先级可以存储在组件的组件信息中。不同的已创建功能组件可以具有不同的优先级。每个已创建功能组件的优先级可以根据实际的沟通场景确定。例如,针对在线教室,每个已创建功能组件的优先级可以根据实际教学需要和/或实际教学场景进行实时修改。
[0112]
示例性的,不同的优先级对应使用不同的数值表示,数值越大,优先级越高。例如,在线房间中包括连麦组件、投票组件、签到组件,其中签到组件对应的优先级数值为3,投票组件对应的优先级数值为2,连麦组件对应的优先级数值为10,则可以确定连麦组件的优先级大于签到组件的优先级大于投票组件的优先级。
[0113]
具体实施时,在确定出目标组件之后,可以先确定目标组件在当前时刻下对应的优先级。
[0114]
s103-2:在目标组件的优先级大于预设优先级阈值的情况下,获取针对目标组件的悲观锁;悲观锁用于指示服务端具有修改目标组件信息的唯一权限。
[0115]
这里,预设优先级阈值为预先设置的更新方式确定阈值。在一组件的优先级大于预设优先级阈值的情况下,更新方式为同步更新。其中,同步更新即为在确定目标组件信息之后,即根据更新请求指示的目标状态,对目标组件信息中的组件状态和组件版本进行更新。
[0116]
反之,在一组件的优先级不大于预设优先级阈值的情况下,更新方式为异步更新。其中,异步更新即为在确定目标组件信息之后,先将目标组件信息和更新请求指示的目标状态存储,在存在空闲资源的情况下,利用预先创建的异步更新任务,根据更新请求指示的目标状态,对目标组件信息中的组件状态和组件版本进行更新。
[0117]
悲观锁,具有强烈的独占和排他特性。它指的是对数据被外界修改持保守态度,因此,在整个数据处理过程中,将数据处于锁定状态。悲观锁的实现,往往依靠数据库提供的锁机制,本公开实施例中对各个在线房间的房间信息进行存储的数据库可以包括但不限于远程字典服务(remote dictionary server,简称redis)、分布式存储空间abase。
[0118]
示例性的,服务a和服务b均具有对组件信息a进行修改的权限,则在服务a获取到针对组件信息a的悲观锁之后,服务a将具有修改组件信息a的唯一权限,服务b无法对组件
信息a进行修改,直至服务a获取的悲观锁解除,服务b才可以对组件信息a进行修改。
[0119]
s103-2在具体实施时,可以将目标组件的优先级和预设优先级阈值进行比较,在确定目标组件的优先级大于预设优先级阈值的情况下,确定可以使用同步更新的方式对目标组件信息进行更新。为了防止其他服务对目标组件信息进行更新,可以通过redis分布式锁获取针对目标组件的悲观锁。这里,针对目标组件的悲观锁也为针对在线房间的悲观锁。
[0120]
并且,在获取针对目标组件的悲观锁的过程中,如果悲观锁获取失败,则可以进行失败重试,尝试重新获取针对目标组件的悲观锁。这里,可以设置最大重试次数,当尝试重新获取悲观锁的次数超过预设次数,则确定无法获取到针对目标组件的悲观锁,则不对目标组件信息进行修改,并向客户端(教室客户端)反馈更新失败的提示信息,以提示用户通过客户端重新发起更新请求。
[0121]
s103-3:响应于获取悲观锁,将目标组件信息中的组件状态更新为目标状态,并按照预设值对组件版本进行更新。
[0122]
这里,预设值可以为预设的增加值。示例性的,预设值可以为1。
[0123]
具体实施时,在确定成功获取悲观锁的情况下,可以将目标组件信息中的组件状态更新为目标状态,得到更新后的组件状态。同时,可以将目标组件信息中的组件版本值增加1,得到更新后的组件版本。
[0124]
在另一种实施例中,针对目标组件的优先级不大于预设优先级阈值的情况,可以按照以下步骤完成对组件状态和组件版本的更新:
[0125]
步骤一、将目标组件的组件标识作为目标组件的键信息,将目标组件的优先级作为键信息的得分,将目标状态作为目标组件的值信息,得到具有有序集合数据结构的目标存储数据。
[0126]
这里,有序集合数据结构即为redis中的zset数据结构。其中,zset数据结构具体是一种有序列表,有序列表中不能存在重复键值信息,且有序列表中的键值信息可以按照设置的得分进行排序。
[0127]
具体实施时,在目标组件的优先级不大于预设优先级阈值的情况下,可以将目标组件信息以zset数据结构的形式存储。具体的,将可以目标组件的组件标识作为目标组件的键信息(即key),将目标组件的优先级作为键信息对应的得分(即score),将更新请求指示的目标状态设置为键信息对应的值信息(即value),从而得到目标组件对应的、具有zset数据结构的目标存储数据,并存储在有序列表中。
[0128]
可选的,也可以将更新请求指示的目标状态以及目标组件的目标组件信息一起作为值信息。
[0129]
步骤二、利用目标存储数据,对具有有序集合数据结构的各个已存储数据进行去重处理,得到去重后的各个存储数据。
[0130]
这里,zset有序列表具有自动去重的能力,由于优先级低于预设优先级阈值的每个组件在修改时,都会生成zset数据结构的目标存储数据并存储在有序列表中,以等待下述的异步更新任务根据有序列表中的目标存储数据进行组件信息的更新。而有序列表中可能包括多个目标存储数据,且由于异步更新任务的执行时间不一定,导致针对同一个目标组件发起的多次更新请求分别对应的目标存储数据,可能均存储在有序列表中。而多次更新请求分别对应的目标存储数据,可能存在对应于相同更新操作的目标存储数据。例如,目
标存储数据a和目标存储数据b对应的键信息均为组件标识1,值信息均为目标状态1,得分均为3,则可以确定目标存储数据a和目标存储数据b对应于相同的操作,为了节省计算资源,避免重复对组件信息进行更新,可以对目标存储数据a和目标存储数据b进行去重处理,保留生成时间最新的目标存储数据在有序列表中。
[0131]
去重后的各个存储数据之间均为互不重复的存储数据。去重后的各个存储数据可以包括目标存储数据。
[0132]
具体实施时,在生成目标组件对应的目标存储数据之后,可以利用该目标存储数据和有序列表的自动去重能力,对有序列表中的各个已存储数据进行去重处理,得到去重后的各个存储数据。
[0133]
步骤三、响应于预先创建的异步更新任务,按照得分从高到低的顺序,依次基于去重后的每个存储数据中的值信息,对每个存储数据对应的组件的组件状态进行更新。
[0134]
这里,预先创建的异步更新任务为用于根据有序列表中的存储数据,对在线房间中的已创建组件的组件信息进行更新的任务。
[0135]
具体实施时,可以执行预先创建的异步更新任务,根据有序列表存储的去重后的各个存储数据对应的得分,按照得分从高到低的顺序,从有序列表中确定得分最高的、去重后的存储数据。然后,根据该去重后的存储数据中的值信息,对该去重后的存储数据对应的组件的组件状态进行更新,并可以按照预设值,对该去重后的存储数据对应的组件的组件版本进行更新。然后可以在有序列表中删除该去重后的存储数据。
[0136]
之后,可以利用异步更新任务,返回执行“根据有序列表存储的去重后的各个存储数据对应的得分,按照得分从高到低的顺序,从有序列表中确定当前得分最高的、去重后的存储数据”的步骤,从而实现依次基于去重后的每个存储数据中的值信息,对每个去重后的存储数据对应的组件的组件状态进行更新。
[0137]
示例性的,针对目标存储数据而言,在目标存储数据为有序列表中得分最高的、去重后的存储数据的情况下,可以将目标组件信息中的组件状态更新为目标存储数据中的目标状态,并按照预设值,对目标组件信息中的组件版本进行更新。
[0138]
这样,利用每个存储数据的优先级进行组件信息的更新,可以保证针对优先级高的已创建组件的更新操作被优先执行。
[0139]
s104:基于更新后的目标组件信息和更新后的属性信息,生成在线房间的第一更新信息,并将第一更新信息反馈至登录在线房间的客户端,以使客户端基于第一更新信息,更新目标组件的本地组件信息和在线房间的本地属性信息。
[0140]
这里,以在线房间为在线教室为例,登录在线房间的客户端,即为与服务端相连的各个学生客户端中,与目标组件对应的在线房间具有关联关系的学生客户端。客户端与服务端之间可以以长链的方式连接。
[0141]
第一更新信息为指示客户端对本地缓存的在线房间的属性信息、和目标组件的目标组件信息进行更新的信息。本地组件信息即为客户端本地缓存组件信息。
[0142]
具体实施时,在得到更新后的目标组件信息和更新后的属性信息之后,服务端可以根据更新后的目标组件信息、更新后的属性信息和目标组件的组件标识,生成针对在线房间的第一更新信息。并且,服务端可以确定与在线房间具有关联关系的各个客户端,并利用与各个客户端之间的长链,向各个客户端发送第一更新信息。
[0143]
进一步的,针对任一个客户端,在该客户端接收到第一更新信息之后,可以先确定本地缓存的、与第一更新信息中携带的组件标识相匹配的目标组件,然后可以根据第一更新信息携带的更新后的组件状态,将目标组件的本地组件信息中的组件状态,更新为更新后的组件状态;并将根据第一更新信息携带的更新后的组件版本,将本地组件信息中的组件版本更新为更新后的组件版本。同时,可以根据第一更新信息携带的更新后的房间版本,对在线房间的本地属性信息中的房间版本进行更新,得到更新后的本地属性信息。如此,客户端根据获取的第一更新信息,可以实现对本地缓存的与在线房间相关的信息的更新,从而实现客户端与服务端之间信息和功能的及时同步。
[0144]
这样,本公开实施例利用能够唯一标识组件的组件标识,可以从在线房间包括的已创建功能组件的组件信息中,准确筛选出需要修改的目标组件的目标组件信息。利用更新请求指示的目标状态,对目标组件信息中的组件状态和组件版本进行更新,得到更新后的目标组件信息,同时对在线房间的属性信息指示的房间版本进行更新,得到更新后的属性信息,可以实现每一次修改对应于一个版本的目标组件信息和一个版本的属性信息,实现了组件信息和属性信息与版本之间的关联。利用更新后的目标组件信息和更新后的属性信息,生成在线房间的第一更新信息,并反馈至登录在线房间的客户端,客户端可以根据第一更新信息中具有关联的组件信息、属性信息和版本,对本地加载的目标组件的组件信息和在线房间的属性信息进行及时修改,从而实现客户端与服务端之间信息和功能的及时同步。
[0145]
在一种实施例中,在获取针对任一在线房间的更新请求之前,还可以包括在在线房间中创建功能组件的步骤:
[0146]
s1:响应于针对在线房间的功能创建请求,生成功能创建请求对应的待创建功能组件的组件信息。
[0147]
这里,功能创建请求为用于在在线房间中创建具有目标功能的功能组件的请求。以在线房间为在线教室为例,功能创建请求可以在在线教室创建后的任一时刻,由教师客户端发起。
[0148]
待创建功能组件即为具有功能创建请求指示的目标功能的功能组件。
[0149]
具体实施时,服务端可以响应于教师客户端发起的针对在线教室的功能创建请求,确定功能创建请求指示创建的待创建功能组件。之后,服务端可以生成待创建功能组件的组件信息。
[0150]
这里需要说明的是,任一在线教室在创建完成后,可以在在线教室中创建预先指定的默认功能组件,并生成在线教室的教室信息。其中,教室信息中可以包括默认功能组件的组件信息。之后,教师可以根据实际的教学需要,利用教室客户端向服务端发起针对在线教师的功能创建请求,以实现在在线教室中添加新的目标功能。
[0151]
在一种实施例中,针对s1中生成功能创建请求对应的待创建功能组件的组件信息的步骤,可以按照以下步骤实施:
[0152]
s1-1:生成待创建功能组件的组件标识,并确定待创建功能组件的组件状态和组件版本。
[0153]
具体实施时,服务端可以响应于功能创建请求,在在线房间中创建待创建功能组件,并生成能够唯一标识待创建功能组件的组件标识。并且,服务端还可以确定待创建功能
组件的组件状态和组件版本。这里,待创建功能组件的组件状态可以为默认的初始状态、创建功能组件的组件版本可以为默认的初始版本。或者,待创建功能组件的组件状态可以为功能创建请求指示的组件状态,待创建功能组件的组件版本可以为功能创建请求指示的组件版本。
[0154]
s1-2:从多个预设序列化方式中,选取目标序列化方式,并利用目标序列化方式对待创建功能组件的原始组件数据进行序列化处理,得到序列化后的组件数据。
[0155]
这里,原始组件数据即为组件对应的所有数据,基于原始组件数据,组件可以实现其本身的功能。多个预设序列化方式可以为预先指定的序列化方式。具体的,多个预设序列化方式可以包括json序列化方式和protobuff序列化方式。
[0156]
具体实施时,可以从多个预设序列化方式中,选取用于对待创建功能组件的原始组件数据进行序列化处理的目标序列化方式,之后,可以利用目标序列化方式,对原始组件数据进行序列化处理,得到待创建功能组件对应的序列化后的组件数据。
[0157]
同时,在确定目标序列化方式之后,还可以确定目标序列化方式对应的类型指示信息。其中,类型指示信息即为组件的数据类型。在类型指示信息对应的数值为1时,则表示目标序列化方式为json序列化;在类型指示信息对应的数值为2时,则表示目标序列化方式为protobuff序列化。
[0158]
s1-3:将组件标识、组件状态、组件版本、序列化后的组件数据和目标序列化方式对应的类型指示信息,确定为待创建功能组件的组件信息。
[0159]
具体实施时,可以根据上述在线房间111对应的组件信息的数据结构,将组件标识、组件状态、组件版本、序列化后的组件数据和目标序列化方式对应的类型指示信息进行结构化处理,从而得到待创建功能组件的组件信息。
[0160]
s2:将待创建功能组件的组件信息添加至在线房间对应的第一房间信息,得到更新后的第一房间信息;第一房间信息包括在线房间的属性信息和各个已创建功能组件的组件信息。
[0161]
这里,第一房间信息即为在线房间的房间信息。其中,可以包括在线房间的属性信息,和在线房间中各个已创建功能组件的组件信息。更新后的第一房间信息中还将包括待创建功能组件的组件信息。
[0162]
仍以房间标识为111的在线房间对应的结构化的房间信息为例,该结构化的房间信息即为在线房间111的第一房间信息,在待创建功能组件为倒计时功能组件的情况下,可以将倒计时功能组件的组件信息添加至在线房间111的第一房间信息中,得到更新后的第一房间信息。
[0163]
s3:对更新后的第一房间信息的属性信息中房间版本进行更新,得到包括新的房间版本的第二房间信息。
[0164]
这里,因为更新后的第一房间信息中添加了待创建功能组件的组件信息,所以在线房间的房间版本也需要更新。因此,在具体实施时,可以按照预设值,对更新后的第一房间信息的属性信息中的房间版本进行更新,得到新的房间版本。之后,可以将新的房间版本和更新后的第一房间信息中未更改的其他信息,作为第二房间信息。
[0165]
示例性的,可以将更新后的第一房间信息的属性信息中的房间版本值增加1,得到新的房间版本。
[0166]
s4:基于第二房间信息,生成第二更新信息,并将第二更新信息反馈至客户端,以使客户端基于第二更新信息,在本地创建待创建功能组件。
[0167]
以在线房间为在线教室为例,客户端即为与在线房间具有关联关系的各个学生客户端。第二更新信息为用于指示客户端在本地加载的在线房间中创建待创建功能组件的信息。
[0168]
具体实施时,可以生成包括第二房间信息的第二更新信息,并将第二更新信息分别反馈至与在线房间具有关联关系的各个客户端。之后,针对任一个客户端,其在获取到第二更新信息之后,均可以根据第二更新信息,在本地加载的在线房间中,创建一个待创建功能组件。同时,将待创建功能组件的组件信息存储在在线房间的本地房间信息中,并对本地房间信息中的房间版本更新为第二更新信息指示的新的房间版本。
[0169]
如此,基于第二更新信息,客户端可以实现在本地加载的在线房间中,同步创建一个待创建功能组件,实现客户端与服务端之间的信息同步。
[0170]
另外,本公开实施例还提供了一种应用于客户端的在线房间的信息同步方法,基于客户端和服务端之间的交互,从而实现户端与服务端之间的信息同步。如图2所示,为本公开实施例提供的一种应用于客户端的在线房间的信息同步方法的流程图,可以包括以下步骤:
[0171]
s201:获取服务端发送的第一更新信息;第一更新信息包括更新后的目标组件信息和更新后的属性信息。
[0172]
这里,第一更新信息为服务端生成的信息,用于指示客户端对本地缓存的在线房间的属性信息、和目标组件的目标组件信息进行更新。第一更新信息可以包括更新后的目标组件信息和更新后的属性信息。更新后的目标组件信息可以包括但不限于目标组件的目标组件标识、更新后的组件状态和更新后的组件版本。更新后的属性信息可以包括但不限于更新后的房间版本。
[0173]
示例性的,服务端在对目标组件的组件信息和在线房间的属性信息进行更新后,可以基于更新后的目标组件信息和更新后的属性信息,生成在线房间的第一更新信息并反馈至客户端。进而,客户端可以获取到服务端发送的第一更新信息。
[0174]
s202:在本地加载的在线房间的本地房间版本、低于更新后的属性信息指示的更新后的房间版本的情况下,确定更新后的目标组件信息携带的目标组件标识。
[0175]
这里,客户端可以获取本地加载的在线房间的本地房间版本,并将本地房间版本和更新后的属性信息指示的更新后的房间版本进行比较。在本地房间版本低于更新后的房间版本的情况下,说明本地房间版本为旧版本,与服务端的房间版本不同步,需要更新,继而客户端则可以确定更新后的目标组件信息携带的目标组件标识。
[0176]
在本地房间版本不低于更新后的房间版本的情况下,说明本地房间版本已经为最新版本,当前接收到的第一更新信息为延迟接收到的信息,客户端则可以忽略该第一更新信息。
[0177]
s203:将与目标组件标识相匹配的目标组件的本地组件信息,更新为更新后的目标组件信息,并将本地房间版本更新为更新后的房间版本。
[0178]
这里,客户端从本地房间信息中包括的各个本地组件信息中,筛选出与目标组件标识相匹配的本地组件信息,将该本地组件信息对应的本地组件作为目标组件。之后,可以
将目标组件的本地组件信息,更新为更新后的目标组件信息,并在更新成功的情况下,将本地房间版本更新为更新后的房间版本。如此,客户端基于第一更新信息,可以实现客户端与服务端之间信息和功能的及时同步。
[0179]
在一种实施例中,针对s203中“将本地组件信息更新为更新后的目标组件信息”的步骤,可以按照以下步骤实施:
[0180]
将本地组件信息中的组件版本和更新后的目标组件信息包括的更新后的组件版本进行比较,确定本地组件信息中的组件版本是否低于更新后的组件版本。如果是,则说明本地组件信息中的组件版本为旧版本,与服务端的更新后的组件版本不同步,需要更新,进而客户端可以将本地组件信息,更新为更新后的目标组件信息。
[0181]
示例性的,可以将本地组件信息中的组件版本,更新为更新后的组件版本,将本地组件信息中的组件状态,更新为更新后的目标组件信息包括的更新后的组件状态。对更新后的目标组件信息包括的更新后的组件数据进行解析,并利用解析后的组件数据,对本地组件信息中的组件数据进行更新。如此,可以得到更新后的本地组件信息以及更新后的本地组件。
[0182]
反之,如果本地组件信息中的组件版本不低于更新后的组件版本,则说明本地组件信息中的组件版本已经是最新版本,不需要更新,则客户端可以,忽略第一更新信息,不对本地组件信息进行修改。
[0183]
在一种实施例中,客户端还可以接收服务端发送的第二更新信息。这里,第二更新信息为服务端在创建了具有目标功能的待创建功能组件之后生成并发送的信息,用于指示客户端在本地加载的在线房间中创建待创建功能组件。第二更新信息可以包括第二房间信息;第二房间信息可以包括新的房间版本和待创建功能组件的组件信息。
[0184]
然后,客户端可以将本地加载的在线房间的本地房间版本,和第二更新信息包括的新的房间版本进行比较。在本地房间版本低于新的房间版本的情况下,客户端可以基于待创建功能组件的组件信息,创建待创建功能组件,并将待创建功能组件的组件信息添加至本地加载的在线房间的本地房间信息中。同时,可以将本地房间信息中的本地房间版本更新为新的房间版本。如此,客户端可以得到新的本地房间信息,并完成对待创建功能组件的创建,从而实现客户端与服务端之间信息和功能的及时同步。
[0185]
这样,客户端通过对比本地房间版本和更新后的属性信息指示的更新后的房间版本,可以确定客户端本地加载的房间版本是否为最新版本,进而准确确定客户端与服务端之间的信息是否同步。在确定本地房间版本低于更新后的房间版本的情况下,通过将目标组件的本地组件信息,更新为更新后的目标组件信息,并将本地房间版本更新为更新后的房间版本。通过服务端和客户端之间的交互,可以实现对目标组件的组件信息和在线房间的属性信息的及时修改,进而实现客户端与服务端之间信息的及时同步。
[0186]
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
[0187]
基于同一发明构思,本公开实施例中还提供了与应用于服务端的在线房间的信息同步方法对应的应用于服务端的在线房间的信息同步装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述应用于服务端的在线房间的信息同步方法相似,因此装
置的实施可以参见方法的实施,重复之处不再赘述。
[0188]
如图3所示,为本公开实施例提供的一种应用于服务端的在线房间的信息同步装置的示意图,包括:
[0189]
第一获取模块301,用于获取针对任一在线房间的更新请求;
[0190]
筛选模块302,用于根据所述更新请求中携带的组件标识,从所述在线房间包括的各个已创建功能组件的组件信息中,筛选出与所述组件标识相匹配的目标组件的目标组件信息;
[0191]
第一更新模块303,用于根据所述更新请求指示的目标状态,更新所述目标组件信息中的组件状态和组件版本,得到更新后的目标组件信息,并更新所述在线房间的属性信息指示的房间版本,得到更新后的属性信息;
[0192]
生成模块304,用于基于所述更新后的目标组件信息和所述更新后的属性信息,生成所述在线房间的第一更新信息,并将所述第一更新信息反馈至登录所述在线房间的客户端,以使所述客户端基于所述第一更新信息,更新所述目标组件的本地组件信息和所述在线房间的本地属性信息。
[0193]
在一种可能的实施方式中,所述第一更新模块303,在根据所述更新请求指示的目标状态,更新所述目标组件信息中的组件状态和组件版本时,用于确定所述目标组件的优先级;
[0194]
在所述目标组件的优先级大于预设优先级阈值的情况下,获取针对所述目标组件的悲观锁;所述悲观锁用于指示服务端具有修改所述目标组件信息的唯一权限;
[0195]
响应于获取所述悲观锁,将所述目标组件信息中的组件状态更新为所述目标状态,并按照预设值对所述组件版本进行更新。
[0196]
在一种可能的实施方式中,所述第一更新模块303,还用于
[0197]
在所述目标组件的优先级不大于所述预设优先级阈值的情况下,将所述目标组件的组件标识作为所述目标组件的键信息,将所述目标组件的优先级作为所述键信息的得分,将所述目标状态作为所述目标组件的值信息,得到具有有序集合数据结构的目标存储数据;
[0198]
利用所述目标存储数据,对具有所述有序集合数据结构的各个已存储数据进行去重处理,得到去重后的各个存储数据;
[0199]
响应于预先创建的异步更新任务,按照得分从高到低的顺序,依次基于所述去重后的每个存储数据中的值信息,对每个所述去重后的存储数据对应的组件的组件状态进行更新。
[0200]
在一种可能的实施方式中,所述装置还包括:
[0201]
创建模块305,用于在所述获取针对任一在线房间的更新请求之前,响应于针对所述在线房间的功能创建请求,生成所述功能创建请求对应的待创建功能组件的组件信息;
[0202]
将所述待创建功能组件的组件信息添加至所述在线房间对应的第一房间信息,得到更新后的第一房间信息;所述第一房间信息包括所述在线房间的属性信息和各个所述已创建功能组件的组件信息;
[0203]
对所述更新后的第一房间信息的属性信息中房间版本进行更新,得到包括新的房间版本的第二房间信息;
[0204]
基于第二房间信息,生成第二更新信息,并将所述第二更新信息反馈至所述客户端,以使所述客户端基于所述第二更新信息,在本地创建所述待创建功能组件。
[0205]
在一种可能的实施方式中,所述创建模块305,在所述生成所述功能创建请求对应的待创建功能组件的组件信息时,用于生成所述待创建功能组件的组件标识,并确定所述待创建功能组件的组件状态和组件版本;
[0206]
从多个预设序列化方式中,选取目标序列化方式,并利用所述目标序列化方式对所述待创建功能组件的原始组件数据进行序列化处理,得到序列化后的组件数据;
[0207]
将所述组件标识、所述组件状态、所述组件版本、所述序列化后的组件数据和所述目标序列化方式对应的类型指示信息,确定为所述待创建功能组件的组件信息。
[0208]
基于同一发明构思,本公开实施例中还提供了与应用于客户端的在线房间的信息同步方法对应的应用于客户端的在线房间的信息同步装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述应用于客户端的在线房间的信息同步方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
[0209]
如图4所示,为本公开实施例提供的一种应用于客户端的在线房间的信息同步装置的示意图,包括:
[0210]
第二获取模块401,用于获取服务端发送的第一更新信息;所述第一更新信息包括更新后的目标组件信息和更新后的属性信息;
[0211]
确定模块402,用于在本地加载的在线房间的本地房间版本、低于所述更新后的属性信息指示的更新后的房间版本的情况下,确定所述更新后的目标组件信息携带的目标组件标识;
[0212]
第二更新模块403,用于将与所述目标组件标识相匹配的目标组件的本地组件信息,更新为所述更新后的目标组件信息,并将所述本地房间版本更新为所述更新后的房间版本。
[0213]
在一种可能的实施方式中,所述第二更新模块403,在所述将与所述目标组件标识相匹配的目标组件的本地组件信息,更新为所述更新后的目标组件信息时,用于在所述本地组件信息中的本地组件版本,低于所述更新后的目标组件信息中更新后的组件版本的情况下,将所述本地组件信息,更新为所述更新后的目标组件信息。
[0214]
在一种可能的实施方式中,所述第二获取模块401,还用于接收所述服务端发送的第二更新信息;所述第二更新信息包括第二房间信息;所述第二房间信息包括新的房间版本和待创建功能组件的组件信息;
[0215]
所述第二更新模块403,还用于在本地加载的在线房间的本地房间版本低于所述新的房间版本的情况下,基于待创建功能组件的组件信息,创建所述待创建功能组件,并将所述本地房间版本更新为所述新的房间版本。
[0216]
关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
[0217]
基于同一技术构思,本技术实施例还提供了一种电子设备。参照图5所示,为本技术实施例提供的一种电子设备的结构示意图,包括:
[0218]
处理器51、存储器52和总线53。其中,存储器52存储有处理器51可执行的机器可读指令,处理器51用于执行存储器52中存储的机器可读指令,所述机器可读指令被处理器51
执行时,处理器51执行下述步骤:s101:获取针对任一在线房间的更新请求;s102:根据更新请求中携带的组件标识,从在线房间包括的各个已创建功能组件的组件信息中,筛选出与组件标识相匹配的目标组件的目标组件信息;s103:根据更新请求指示的目标状态,更新目标组件信息中的组件状态和组件版本,得到更新后的目标组件信息,并更新在线房间的属性信息指示的房间版本,得到更新后的属性信息以及s104:基于更新后的目标组件信息和更新后的属性信息,生成在线房间的第一更新信息,并将第一更新信息反馈至登录在线房间的客户端,以使客户端基于所述第一更新信息,更新目标组件的本地组件信息和在线房间的本地属性信息;或者,所述机器可读指令被处理器51执行时,处理器51执行下述步骤:s201:获取服务端发送的第一更新信息;第一更新信息包括更新后的目标组件信息和更新后的属性信息;s202:在本地加载的在线房间的本地房间版本、低于更新后的属性信息指示的更新后的房间版本的情况下,确定更新后的目标组件信息携带的目标组件标识以及s203:将与目标组件标识相匹配的目标组件的本地组件信息,更新为更新后的目标组件信息,并将本地房间版本更新为更新后的房间版本。
[0219]
上述存储器52包括内存521和外部存储器522;这里的内存521也称内存储器,用于暂时存放处理器51中的运算数据,以及与硬盘等外部存储器522交换的数据,处理器51通过内存521与外部存储器522进行数据交换,当电子设备运行时,处理器51与存储器52之间通过总线53通信,使得处理器51在执行上述方法实施例中所提及的执行指令。
[0220]
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的在线房间的信息同步方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
[0221]
本公开实施例所提供的在线房间的信息同步方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行上述方法实施例中所述的在线房间的信息同步方法的步骤,具体可参见上述方法实施例,在此不再赘述。
[0222]
该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(software development kit,sdk)等等。
[0223]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0224]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0225]
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0226]
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0227]
若本技术技术方案涉及个人信息,应用本技术技术方案的产品在处理个人信息前,已明确告知个人信息处理规则,并取得个人自主同意。若本技术技术方案涉及敏感个人信息,应用本技术技术方案的产品在处理敏感个人信息前,已取得个人单独同意,并且同时满足“明示同意”的要求。例如,在摄像头等个人信息采集装置处,设置明确显著的标识告知已进入个人信息采集范围,将会对个人信息进行采集,若个人自愿进入采集范围即视为同意对其个人信息进行采集;或者在个人信息处理的装置上,利用明显的标识/信息告知个人信息处理规则的情况下,通过弹窗信息或请个人自行上传其个人信息等方式获得个人授权;其中,个人信息处理规则可包括个人信息处理者、个人信息处理目的、处理方式、处理的个人信息种类等信息。
[0228]
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献