在线自动协同编辑文本的实现方案

要实现可以自动在线协同编辑文本的功能。就类似google docs差不多。可以不实时,允许一定时间内的延迟。当然,延迟也是比较难处理的,比如2个用户A和B,原始文本是abc,A删除了c,B由于延迟没看到,他删除了b。那么A看到的是ab,B看到的是ac,过了延迟时间后,AB看到的内容是一样的,都是a。延迟会导致他们的编辑产生误操作。

一个比较简单的实现是加锁,当A用户编辑时,B用户不允许编辑。但是如果A打开了不退出,B永远都编辑不了。要有个退出机制。

A编辑了,通知B,
提示:
提示是否更改文本内容?Yes->获取最新编辑内容更新,No->保留
不提示:缺点:可能丢失B正在编辑的内容
更新最新内容

要基于websocket实现,建议用nodejs




猜你喜欢

转载自lhdst-163-com.iteye.com/blog/2330684