[发明专利]一种多人编辑文档的方法有效
申请号: | 201811205670.1 | 申请日: | 2018-10-17 |
公开(公告)号: | CN109408790B | 公开(公告)日: | 2023-08-01 |
发明(设计)人: | 魏拾俊 | 申请(专利权)人: | 武汉复临科技有限公司 |
主分类号: | G06F40/166 | 分类号: | G06F40/166;H04L67/01 |
代理公司: | 北京超凡宏宇专利代理事务所(特殊普通合伙) 11463 | 代理人: | 曾静 |
地址: | 430073 湖北省武汉市东湖新技术开发区光谷大道*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 编辑 文档 方法 | ||
本发明公开了一种多人编辑文档的方法,其特征在于,将文档分拆成若干个单元,服务器仅对发生了用户操作的单元进行数据更新并推送给其它用户的客户端进行数据更新。当用户编辑文档的不同单元时,相当于编辑不同的对象,它们之间的操作互相独立,完全没有影响,因此不需要和服务器非常频繁的交互就可以实现多人编辑,大幅降低了服务器的压力。另外,本发明不再使用整数作为位置标识,而是使用浮点数(小数)作为位置标识,有效减少了大量数据更新操作。本发明的方法不受网络状况影响,对服务器依赖很低,可以离线编辑,同时又很好地避免了冲突问题。
技术领域
本发明涉及一种多人编辑文档的方法,属于计算机网络技术领域。
背景技术
目前,当多人编辑同一个文档时,通常有两种实现方法,一种是离线方式编辑,然后在提交给服务器的时候进行合并,典型的例子是git;另一种是实时更新,例如googledocs,当有多人编辑文档的时候,会实时在所有人的浏览器内显示其他人编辑的结果。
git是离线编辑方式,用户A和B分别在本地编辑同一篇文档,在提交到服务器的时候,和服务器上面的内容进行比对,找出差异,然后进行合并。这种方法对服务器依赖很低,不需要实时在线,只要在提交修改的时候连接服务器即可。但是,这种方法很容易出现冲突:当用户A和B分别编辑同一部分内容的时候,就会出现冲突。git会要求用户自己解决冲突,通常是后提交修改的用户解决冲突。
实时更新通常是为了避免冲突,例如用户A和B分别修改了同一段内容,googledocs通过实时更新服务器和所有用户的数据,可以比较好的解决冲突。但是要求用户A和B必须同时和服务器保持较好的网络连接,以便能够即时发送每一个用户编辑的内容。
google docs多人实时编辑的实现方法如下:
首先,google docs有一个或一组服务器,服务器上面保存了正在编辑的文档内容。用户A和B分别在自己的客户端(浏览器)上面,将文档内容从服务器下载到本地,并在客户端(浏览器)里面显示出来,以供用户编辑。google docs将整个文档作为一个stream,当用户A编辑的时候,当前位置为从文档开始的偏移量,然后记录用户输入的内容。例如当用户在第3段第5个字符输入新的字符串test的时候,向服务器发送的命令为:
[{commands:[{ty:is,ibi:14,s:test}],sid:16aa3baef0685777,reqId:30}]
其中ty:is表示插入,ibi:14表示从文档开头到第三段第5个字符的偏移量,也就是从开始到当前位置一共有15个字符。s:test表示插入的内容。当用户A插入一个或几个字符,客户端(浏览器)就会发送一下当前编辑的内容给服务器。通常用户修改之后的1-5秒内,就会发送一次修改。当修改后的内容发送给服务器之后,客户端(浏览器)会继续记录用户的下一次修改内容,并继续发送给服务器。通常如果用户在连续输入内容的时候,客户端会频繁的给服务器发送数据。
当用户连续输入内容的时候,通常每秒钟都会输入多个字符,为了避免不断的向服务器发送操作,造成服务器压力过大,客户端会将用户操作合并,例如当用户短时间连续输入多个字符或单词的时候,客户端会合并这些操作成为一个操作,把多个插入单个字符的操作,合并成一个插入多个字符的操作。这样,可以将请求从1秒钟多次降低为数秒钟1次。
而服务器接收到用户A的操作后,会在服务器执行类似的操作,例如收到前面的命令后,服务器就会在自己保存的文档里面,从文档开头偏移量为14的地方,插入test字符串。
由于此时B也在编辑文档,因此,服务器还需要把A编辑的命令,发送给用户B。用户B所在的客户端(浏览器),会通过websocket等技术(因为兼容性问题,google docs没有使用websocket,而是使用了传统的http连接来解决兼容性问题),从服务器获取其它用户编辑的操作。当用户B的客户端接收到服务器发来的操作后,同样也会执行类似的操作,找到文档开始位置偏移14的地方,插入test字符串。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉复临科技有限公司,未经武汉复临科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811205670.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种笔录模板及其生成方法及笔录模板选择系统
- 下一篇:电子证书模板生成方法