Toggle navigation
Toggle navigation
This project
Loading...
Sign in
liuming
/
developer-docs
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Authored by
echo
2016-04-12 20:06:03 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
1dc4254cbc96447ca1b384c5f5b0b360c8da4dba
1dc4254c
1 parent
21542e27
Updated 远程教学之消息顺序保证机制 (markdown)
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
5 additions
and
5 deletions
远程教学之消息顺序保证机制.md
远程教学之消息顺序保证机制.md
View file @
1dc4254
...
...
@@ -15,9 +15,9 @@
### 同步策略
*
消息接收端构造1个本地缓存消息队列
*
发送端
有变量记录发送的学习也序号和页内消息序号,接收端有变量记录期待
收到的学习页的序号,和消息序号
*
当收到的消息
符合不符合期待序号
的时候(例如后发先至的消息),把该消息缓存到队列
*
当收到的消息符合
期待序号的时候,直接处理该消息,更新期待的消息序号,处理完消息后检查缓存队列中是否有期待的消息序号,如果有则拿出来继续处理,重复执行本条逻辑直到缓存队列中没有期待的消息序号为止。
*
当接收端
创建一个新的学习页面后,要从队列中查看是否有先于页面到达的
页内动作信息,有则处理,没有则等待动作消息到达。
*
切换页面的时候,重置期待页内消息序号
,清空队列中之前页面的动作消息
。
*
发送端
记录发送的学习页序号和页内消息序号,接收端记录
收到的学习页的序号,和消息序号
*
当收到的消息
不符合预期顺序
的时候(例如后发先至的消息),把该消息缓存到队列
*
当收到的消息符合
预期顺序的时候,直接处理该消息,处理完毕后更新期待的消息序号,然后检查缓存队列中是否有期待的消息序号,如果有则拿出来继续处理,重复执行本条逻辑直到缓存队列中没有期待的消息序号为止。(处理队列中缓存信息的时候,需要设置一定的时间间隔,以防止两个相邻动作执行过快,破坏画面的动画效果和预期的结果)
*
当接收端
根据接收的信息创建一个新的学习页面后,清空队列中之前页面的动作消息,从队列中查看是否有先于页面到达的第0个
页内动作信息,有则处理,没有则等待动作消息到达。
*
切换页面的时候,重置期待页内消息序号。
*
结束课程的时候,重置期待学习页序号,页内消息序号,清空队列。
\ No newline at end of file
...
...
Please
register
or
login
to post a comment