本技术涉及数据处理,尤其涉及一种在线文档协同编辑方法、装置、设备及存储介质。
背景技术:
1、随着互联网技术的不断进步,在线协同编辑已成为众多用户关注的焦点。然而,这也带来了数据一致性维护和数据处理性能方面的显著挑战。目前,为确保协同编辑数据的一致性,主要有集中式和分布式两种解决方案。集中式方法的核心在于,服务器集中处理所有数据,并通过广播机制将更新结果发送给所有客户端,从而实现数据同步。
2、但这种方式存在明显缺陷:一旦服务器遭遇故障或不可访问,存储在其中的所有数据将面临丢失风险。此外,当客户端产生的操作数据激增,服务器在处理大量文档版本及其对应的操作数据时,将面临巨大压力。这种压力可能导致服务器响应迟缓,进而引发客户端之间的数据不一致问题。另外,如果服务器未能及时处理客户端发送的操作数据,不仅会造成数据丢失,还会加剧客户端与服务器之间的数据不一致性。
3、现有技术主要采用集中式方法来处理在线协同编辑文档的同步问题。但如前所述,这种方法存在诸多局限性,尤其是在服务器负载过重或遭遇故障时。因此,得到一种更可靠的在线文档协同编辑方法为本领域技术人员亟需解决的。
技术实现思路
1、针对上述问题,本技术提供了一种在线文档协同编辑方法,包括以下内容:
2、第一方面,本技术提供了一种在线文档协同编辑方法,应用于客户端,包括:
3、建立与服务端的长连接;
4、建立空全量数据集,所述空全量数据集用于存储全量数据;
5、计算所述客户端的终端状态向量;
6、将客户端标识、时间戳和状态向量key值进行封装得到帧信息;
7、将所述帧信息发送到服务端。
8、可选的,接收服务端发送的包含终端标识、源终端标识、时间戳、状态向量和数据更新集的帧信息;
9、状态向量算子通过对比本地状态向量和接收到的帧信息中的状态向量,计算得出状态向量差异值;
10、若状态向量差异值长度大于0,则数据同步算子使用状态向量差异值和接收到的数据更新集更新客户端的全量数据;
11、若状态向量差异值长度等于0,则不作任何处理。
12、可选的,所述数据同步算子使用状态向量差异值和接收到的数据更新集更新客户端的全量数据之后,所述方法还包括:
13、状态向量算子更新本终端状态向量和计算修改数据前后状态向量差异值;
14、数据同步算子利用状态向量差异值计算数据更新集;
15、帧信息处理算子将终端标识、时间戳、状态向量和数据更新集封装为帧信息发送至服务端。
16、第二方面,本技术提供了一种在线文档协同编辑方法,包括:
17、获取客户端发送的包含客户端标识、时间戳和状态向量的帧信息;
18、状态向量算子对接收到的状态向量的键值key与本地状态向量进行对比,得到状态向量差异值;
19、若所述状态向量差异值长度大于0,则使用数据同步算子计算数据更新集,帧信息处理算子将终端标识、源终端标识、时间戳、本终端状态向量和数据更新集封装为帧信息发送至服务器后进行广播;
20、若状态向量差异值长度等于0,则不作任何处理。
21、可选的,所述帧信息处理算子将终端标识、源终端标识、时间戳、本终端状态向量和数据更新集封装为帧信息发送至服务器后进行广播之后,客户端进行全量数据更新;
22、响应于所述客户端的全量数据更新,进行广播。
23、可选的,状态向量算子计算得到状态向量差异值包括:
24、循环对比两状态向量时间戳,若有不同的时间戳,则将此时间戳和对应的客户端标识队列值添加至状态向量差异值中;
25、若时间戳相同,则对比时间戳中的客户端标识队列值,若客户端标识队列值不同,则将此时间戳和对应不同的客户端标识队列值添加至状态向量差异值中,直至两状态向量时间戳队列全部对比完成,得出状态向量差异值。
26、第三方面,本技术提供了一种在线文档协同编辑装置,包括:
27、建立单元,用于建立与服务端的长连接;
28、所述建立单元还用于建立空全量数据集,所述空全量数据集用于存储全量数据;
29、计算单元,用于计算所述客户端的终端状态向量;
30、封装单元,用于将客户端标识、时间戳和状态向量key值进行封装得到帧信息;
31、发送单元,用于将所述帧信息发送到服务端。
32、可选的,所述装置还包括:
33、接收单元,用于接收服务端发送的包含终端标识、源终端标识、时间戳、状态向量和数据更新集的帧信息;
34、比对单元,用于通过对比本地状态向量和接收到的帧信息中的状态向量,计算得出状态向量差异值;
35、若状态向量差异值长度大于0,则数据同步算子使用状态向量差异值和接收到的数据更新集更新客户端的全量数据;
36、若状态向量差异值长度等于0,则不作任何处理。
37、可选的,所述装置还包括:
38、数据更新单元,用于更新本终端状态向量和计算修改数据前后状态向量差异值;
39、计算单元,用于利用状态向量差异值计算数据更新集;
40、处理单元,用于将终端标识、时间戳、状态向量和数据更新集封装为帧信息发送至服务端。
41、第四方面,本技术提供了一种在线文档协同编辑装置,包括:
42、获取单元,用于获取客户端发送的包含客户端标识、时间戳和状态向量的帧信息;
43、比对单元,用于对接收到的状态向量的键值key与本地状态向量进行对比,得到状态向量差异值;
44、若所述状态向量差异值长度大于0,则使用数据同步算子计算数据更新集,帧信息处理算子将终端标识、源终端标识、时间戳、本终端状态向量和数据更新集封装为帧信息发送至服务器后进行广播;
45、若状态向量差异值长度等于0,则不作任何处理。
46、可选的,所述处理单元还用于,将终端标识、源终端标识、时间戳、本终端状态向量和数据更新集封装为帧信息发送至服务器后进行广播之后,客户端进行全量数据更新;响应于所述客户端的全量数据更新,进行广播。
47、可选的,所述比对单元用于,循环对比两状态向量时间戳,若有不同的时间戳,则将此时间戳和对应的客户端标识队列值添加至状态向量差异值中;
48、若时间戳相同,则对比时间戳中的客户端标识队列值,若客户端标识队列值不同,则将此时间戳和对应不同的客户端标识队列值添加至状态向量差异值中,直至两状态向量时间戳队列全部对比完成,得出状态向量差异值。
49、第五方面,本技术提供了一种设备,所述设备包括存储器和处理器,所述存储器用于存储指令或代码,所述处理器用于执行所述指令或代码,以使所述设备执行前述任一实现方式中介绍的在线文档协同编辑方法。
50、第六方面,本技术提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有代码,当所述代码被运行时,运行所述代码的设备实现前述任一实现方式中介绍的在线文档协同编辑方法。
51、本技术提供了一种在线文档协同编辑方法。在执行所述方法时,先建立与服务端的长连接,然后建立空全量数据集,所述空全量数据集用于存储全量数据,计算所述客户端的终端状态向量,将客户端标识、时间戳和状态向量key值进行封装得到帧信息,将所述帧信息发送到服务端。本技术提供的在线文档协同编辑方法通过建立长连接、空全量数据集和状态向量的传输与处理,实现了客户端和服务端之间的稳定数据传输、数据完整性和一致性保障以及状态同步,为在线文档的协同编辑提供了高效、可靠的支持。
1.一种在线文档协同编辑方法,其特征在于,应用于客户端,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
3.根据权利要求2所述的方法,其特征在于,所述数据同步算子使用状态向量差异值和接收到的数据更新集更新客户端的全量数据之后,所述方法还包括:
4.一种在线文档协同编辑方法,其特征在于,应用于服务端,所述方法包括:
5.根据权利要求1所述的方法,其特征在于,所述帧信息处理算子将终端标识、源终端标识、时间戳、本终端状态向量和数据更新集封装为帧信息发送至服务器后进行广播之后,客户端进行全量数据更新;
6.根据权利要求2或4任一项所述的方法,其特征在于,状态向量算子计算得到状态向量差异值包括:
7.一种在线文档协同编辑装置,其特征在于,应用于客户端,所述装置包括:
8.一种在线文档协同编辑装置,其特征在于,应用于服务端,所述装置包括:
9.一种计算设备,其特征在于,所述计算设备包括:存储器、处理器;
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的方法。
