说明
大数据固定包头,是对固定的包头模板的补充,一般来是,固定包头适配器,不能工作于超过2G的数据,但是在少数情况下,会有大量的数据传输需求。所以这部分的业务,可以用大数据固定包头实现。
实现
- 思路基本和固定包头一致,唯一的区别是,接收的数据分块,由用户自行决定保存。
/// <summary>
/// 模板解析“大数据固定包头”数据适配器
/// </summary>
class MyBigFixedHeaderCustomDataHandlingAdapter : CustomBigFixedHeaderDataHandlingAdapter<MyBigFixedHeaderRequestInfo>
{
public override int HeaderLength => throw new NotImplementedException();
protected override MyBigFixedHeaderRequestInfo GetInstance()
{
return new MyBigFixedHeaderRequestInfo();
}
}
/// <summary>
/// 下列示例,没有实现逻辑,仅解释思路。
/// </summary>
class MyBigFixedHeaderRequestInfo : IBigFixedHeaderRequestInfo
{
public long BodyLength => throw new NotImplementedException();
public void OnAppendBody(byte[] buffer, int offset, int length)
{
//在这里会一直追加数据体,用户自行实现数据的保存。
}
public bool OnFinished()
{
//触发该方法时,说明数据体接收完毕,返回true时,会触发Receive相关事件,否则不会。
return true;
}
public bool OnParsingHeader(byte[] header)
{
//解析头部
return true;
}
}