1.一种基于TCPWebSocket协议的协同编辑方法,其特征在于,包括:步骤1:用户上传文章,并邀请协作编辑的用户;
步骤2:系统将用户提供文章进行分段处理,将段落信息存储至数据库,存储成功后向每个用户展示段落内容;
步骤3:用户点击加锁编辑相关段落,如果该段落正在被其他用户编辑则进行排队等待,待编辑该段的其他用户编辑结束后才允许编辑该段,用户在等待队列中可以排队编辑其他段落;
用户排队等待控制采用的方法包括:建立用户队列、用户进队列、队列顺序控制、用户出队列;
所述建立用户队列,是在提取文档段落信息时就已经为每一个自然段建立起一个空的存储结构,这个存储结构会将文章编号、段落编号以及该段的用户队列一一对应进行初始化;
所述用户进队列,是用户在点击段落对段落进行编辑时,便加入对应段落队列进行等待,若为该队列的第一位则可直接开始编辑,否则等待;
所述队列顺序控制,引入队列顺序控制方法,除了每段为用户分配等待队列之外,单独准备一个链表,该链表用来记录每个段落等待队列中的第一个用户,即记录正在处于编辑状态的用户;
所述用户出队列,是用户在编辑完成点击保存后,分为两部分来处理:第一部分用于处理队列,系统获取文章编号、段落编号以及用户编号,在存储结构中寻找到相应文章的相应段落的用户队列,将该用户编号从队列中移除;第二部分用于处理数据库,将保存更新后的段落内容更新存储到数据库中;
步骤4:用户在编辑完成某段内容后点击保存段落,系统将新的段落内容首先更新数据库的相应段落内容,同时利用WebSocket技术将该段新的内容同步至每个用户的编辑界面;
步骤5:系统将用户所做的操作分别记录下来,将操作步骤和操作内容录入数据库,并将操作信息显示至每一位用户的编辑界面;
步骤6:待所有用户完成编辑后,由一名用户对文档进行最后的编辑整改;
步骤7:导出最终编辑内容形成word文档,结束协同编辑;
其中,所述步骤3中,使每一个自然段都含有一个用户等待队列,仅允许每一个队列的第一个用户对本段进行编辑,用户点击编辑文章中的某个自然段,则加入该段对应的用户队列,若为该队列第一个用户则可直接开始编辑,否则等待,在等待过程中,可以对其他段落排队编辑;
所述步骤3中,若前一位用户已经结束编辑该段,轮到该段下一位用户编辑,然而这一位用户正在编辑其他段落,系统会提示该位用户进行编辑,该位用户有两种选择,一种为结束保存自己正在编辑的段落前往编辑提示段落,另一种为稍候编辑,如果用户选择稍候编辑,则系统会寻找该位用户后的第一位没有编辑其他段落的用户,将两用户进行位置交换,让没有编辑其他段落的用户优先编辑该段;
所述步骤3中加锁方式分为界面与数据库两部分,界面部分,在用户点击编辑该段时,界面将该段编辑状态置为可编辑状态,同时利用WebSocket同步该段加锁状态,提示后面想编辑该段的用户,该段已经有多少人正在排队等候,数据库部分,在用户加锁某段后,数据库将相应段落加上标记,代表已经有人正在编辑该段。
2.根据权利要求1所述的基于TCPWebSocket协议的协同编辑方法,其特征在于,所述用户进队列具体流程包括:步骤(1):用户点击编辑某个自然段;
步骤(2):系统获取文章编号、段落编号、用户编号;
步骤(3):判断存储结构中是否有此文章编号,若有则转步骤(5),没有则转步骤(4);
步骤(4):没有此文章号代表该篇文章还没被编辑过,则需要创建用户队列,将用户编号插入用户队列,并将文章号、段落号与用户队列一一对应起来,具体步骤如下:步骤(4‑
1):创建用户队列,并将用户编号插入;
步骤(4‑2):将段落号和该段用户队列对应;
步骤(4‑3):将文章号与该段落号及用户队列对应;
步骤(5):判断存储结构中是否有用户点击的相关段落编号,若有则转步骤(7),没有则转步骤(6);
步骤(6):没有此段落号代表该段落还没有被编辑过,则需要创建用户队列,将用户编号插入用户队列,并将段落号和该段用户队列对应,具体步骤如下:步骤(6‑1):创建用户队列,并将用户编号插入;
步骤(6‑2):将段落号和该段用户队列对应;
步骤(7):往对应用户队列插入用户编号。
3.根据权利要求1所述的基于TCPWebSocket协议的协同编辑方法,其特征在于,所述队列顺序控制具体引入的队列顺序控制方法包括:步骤(1):用户a点击编辑第一自然段,系统将用户a排至第一自然段对应等待队列的第一位,并将用户a同时存储到链表中,用于记录用户a正在编辑第一自然段;
步骤(2):用户b点击第一自然段,排队等待编辑第一自然段,在等待的同时用户b点击编辑第二自然段,系统将用户b排队至第二段对应的等待队列的第一位的同时将用户b存储至链表中;
步骤(3):同理用户c依次点击第一自然段、第二自然段,依次排队等待编辑;
步骤(4):第一自然段用户a编辑结束,点击保存后,系统将链表中的用户a移除,第一段落的等待队列移除用户a,并提醒后一位用户b前往编辑,若用户b选择前往编辑则转步骤(5),若用户选择稍后编辑则转步骤(6);
步骤(5):系统保存用户b正在编辑的段落,并将b弹出第二段的用户队列,提醒用户c前往编辑第二段;
步骤(6):系统会在第一段用户等待队列中搜索用户b后的用户,每搜索一名用户就会验证该用户是否也存在于链表中,若存在则代表该用户正在编辑其他段落,则跳过该用户直至寻找到用户b后第一位没有正在编辑段落的用户,交换用户b与这名用户的位置,这里交换用户b与c的位置,让用户c优先编辑。
4.根据权利要求1所述的基于TCPWebSocket协议的协同编辑方法,其特征在于,所述步骤3中,所有用户在协同编辑时可以在编辑页面侧边栏进行实时讨论交流。
5.根据权利要求1所述的基于TCPWebSocket协议的协同编辑方法,其特征在于,所述步骤5中,操作信息包括用户信息,操作名称,操作内容。
6.根据权利要求1所述的基于TCPWebSocket协议的协同编辑方法,其特征在于,协同编辑环境需要在局域网或互联网下。