mirror of
https://github.com/ZLMediaKit/ZLMediaKit.git
synced 2026-06-13 11:41:44 +08:00
优化http分包器性能
This commit is contained in:
@@ -90,6 +90,8 @@ begin_decode:
|
||||
onWebSocketDecodeHeader(*this);
|
||||
}
|
||||
|
||||
//进入后面逻辑代表已经获取到了webSocket协议头,
|
||||
|
||||
uint64_t remain = len - (ptr - data);
|
||||
if(remain > 0){
|
||||
uint64_t playload_slice_len = remain;
|
||||
@@ -101,16 +103,17 @@ begin_decode:
|
||||
|
||||
if(_playload_offset == _playload_len){
|
||||
//这是下一个包
|
||||
if(remain - playload_slice_len > 0){
|
||||
string nextPacket((char *)ptr + playload_slice_len,remain - playload_slice_len);
|
||||
_got_header = false;
|
||||
_remain_data = nextPacket;
|
||||
remain -= playload_slice_len;
|
||||
ptr += playload_slice_len;
|
||||
_got_header = false;
|
||||
|
||||
if(remain > 0){
|
||||
//剩余数据是下一个包,把它的数据放置在缓存中
|
||||
_remain_data.assign((char *)ptr,remain);
|
||||
|
||||
data = ptr = (uint8_t *)_remain_data.data();
|
||||
len = _remain_data.size();
|
||||
goto begin_decode;
|
||||
} else{
|
||||
_got_header = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user