public sealed override async Task DisposeAsync(CancellationToken cancellationToken)
{
try
{
if (this.framingStream != null)
{
if (this.message.CanHaveMultiplePackets)
{
await this.DisposeAndCreateFramingStreamAsync(
PacketFlags.EmptyPacket | PacketFlags.LastPacket, cancellationToken);
}
await this.DisposeFramingStream(cancellationToken);
await this.rawBuffer.FlushAsync(cancellationToken);
await base.DisposeAsync(cancellationToken);
}
}
finally
{
this.framingStream = null;
}
}