private async Task <ServerMessageHeader> ReadServerMessageHeader(CancellationToken token)
        {
            var headerbuffer = new byte[ServerMessageHeader.HeaderSize];
            var headersize   = await _stream.ReadAsync(headerbuffer, token);

            var header = new ServerMessageHeader(headerbuffer);

            return(header);
        }
        private async Task <byte[]> ReadServerPayload(ServerMessageHeader header, CancellationToken token)
        {
            var payload = new byte[header.PayloadLength];

            if (header.PayloadLength > 0)
            {
                var payloadsize = await _stream.ReadAsync(payload, token);
            }
            return(payload);
        }