`
yuanjinxiu
  • 浏览: 656117 次
文章分类
社区版块
存档分类
最新评论

第二人生的源码分析(三十七)消息处理的完整流程

 
阅读更多
虽然上面介绍了这么多消息处理:从网络接收到数据,再从数据解释到数据获取,但没有一个清晰的流程,下面就来详细地分析这个数据流程是怎么样调用的。具体调用流程如下:
1. LLAppViewer::idle() 空闲时处理函数。
2. LLAppViewer::idleNetwork()空闲时处理网络事件。
3. LLMessageSystem::checkAllMessages()检查消息系统所有消息。
4. LLMessageSystem::checkMessages() 检查一下是否有消息接收到。
5. LLTemplateMessageReader::readMessage()读取当前的消息。
6. LLTemplateMessageReader::decodeData() 把当前的消息解包。
7. LLMessageTemplate::callHandlerFunc()回调处理这个消息的函数。
8. LLHUDManager::processViewerEffect() 这个消息是处理视图效果。
9. LLHUDEffect::getIDType() 获取ID的类型。
10. LLMessageSystem::getUUIDFast() 取得消息的UUID。
11. LLTemplateMessageReader::getUUID() 从服务器传送回来的消息包里获取UUID数据。
通过上面的流程,就可以分析服务器发来的数据,并且应用到当前界面里。其它类型的数据也是这样不断从服务器获取的,可以跟服务器同步数据,实现显示界面不断地更新。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics