echo

Updated 远程教学之消息顺序保证机制 (markdown)

@@ -13,8 +13,10 @@ @@ -13,8 +13,10 @@
13 * 期待的页内动作的编号(从0开始,每次收到信的符合顺序的页内动作信息,本编号加1) 13 * 期待的页内动作的编号(从0开始,每次收到信的符合顺序的页内动作信息,本编号加1)
14 14
15 ### 同步策略 15 ### 同步策略
16 -* 构造1个本地缓存队列 16 +* 消息接收端构造1个本地缓存消息队列
17 -* 本地有变量记录期待收到的学习页的序号,和消息序号 17 +* 发送端有变量记录发送的学习也序号和页内消息序号,接收端有变量记录期待收到的学习页的序号,和消息序号
18 -* 当收到的消息符合不符合期待序号的时候,把该消息缓存到队列 18 +* 当收到的消息符合不符合期待序号的时候(例如后发先至的消息),把该消息缓存到队列
19 * 当收到的消息符合期待序号的时候,直接处理该消息,更新期待的消息序号,处理完消息后检查缓存队列中是否有期待的消息序号,如果有则拿出来继续处理,重复执行本条逻辑直到缓存队列中没有期待的消息序号为止。 19 * 当收到的消息符合期待序号的时候,直接处理该消息,更新期待的消息序号,处理完消息后检查缓存队列中是否有期待的消息序号,如果有则拿出来继续处理,重复执行本条逻辑直到缓存队列中没有期待的消息序号为止。
20 -* 当切换页面或者结束课程的时候,重置期待消息序号,清空队列。 20 +* 当接收端创建一个新的学习页面后,要从队列中查看是否有先于页面到达的页内动作信息,有则处理,没有则等待动作消息到达。
  21 +* 切换页面的时候,重置期待页内消息序号,清空队列中之前页面的动作消息。
  22 +* 结束课程的时候,重置期待学习页序号,页内消息序号,清空队列。