Echat码流解析流程图
2017-03-22 17:06:38 0 举报
Echat 即时通信流程图
作者其他创作
大纲/内容
此时 readStreamData 包含完整数据包,开始解析handleOneCompletePacketData;清空这次缓存数据,开始解析下一个包:readStreamData = nilcurrentHeader = nil读取数据流(读取特定长度)kHeartBeatLength 字节return;
YES
当前无包头,newData为包头一部分。readStreamData = appendData:(newData)此时 readStreamData 包含完整包头,解析包头
newData == kHeartBeatLength
reciveData:newData
NO
readStreamData = appendData:(newData)
newData == kHeaderLength - kHeartBeatLength
读取数据流(读取特定长度)kHeaderLength - kHeartBeatLengthreturn;
currentHeaderData == nil
读取数据流(读取特定长度)currentHeader.messageLength - kHeaderLengthreturn;
已存在包头,新数据属于包体readStreamData = appendData:(newData)
解析包头:currentHeader = [ECHeader alloc] initWithData:readStreamData
处理心跳包读取数据流(读取特定长度)kHeartBeatLength 字节
开始readStreamData = currentHeader = nil
isBeatPacket
当前无包头,newData为包头一部分readStreamData = appendData:(newData)
0 条评论
下一页