void ReceiveBody()
{
try
{
_connector.OnNext(true);
var buf = new byte[9];
while (!_disconnected)
{
if (!Receive(buf, 0, 1)) return;
var packLen = PackUnpack.LengthVUInt(buf, 0);
if (packLen > 1) if (!Receive(buf, 1, packLen - 1)) return;
int o = 0;
var len = PackUnpack.UnpackVUInt(buf, ref o);
if (len > int.MaxValue) throw new InvalidDataException();
var result = new byte[len];
if (len != 0) if (!Receive(result, 0, (int)len)) return;
_receiver.OnNext(ByteBuffer.NewAsync(result));
}
}
catch (Exception)
{
SignalDisconnected();
}
SignalDisconnected();
}