Exemple #1
0
        public async Task <byte[]> Receive(TeleSharp.TL.TLMethod request)
        {
            while (!request.ConfirmReceived)
            {
                var result = DecodeMessage((await _transport.Receive()).Body);

                using (var messageStream = new MemoryStream(result.Item1, false))
                    using (var messageReader = new BinaryReader(messageStream))
                    {
                        processMessage(result.Item2, result.Item3, messageReader, request);
                    }
            }

            return(null);
        }
Exemple #2
0
        public async Task <byte[]> Receive(TLMethod request, CancellationToken token = default)
        {
            while (!request.ConfirmReceived)
            {
                var result = DecodeMessage((await transport.Receive(token).ConfigureAwait(false)).Body);

                using (var messageStream = new MemoryStream(result.Item1, false))
                    using (var messageReader = new BinaryReader(messageStream))
                    {
                        ProcessMessage(result.Item2, result.Item3, messageReader, request, token);
                    }

                token.ThrowIfCancellationRequested();
            }

            return(null);
        }
Exemple #3
0
        public async Task <byte[]> Receive()
        {
            var result = await _transport.Receive();

            using (var memoryStream = new MemoryStream(result.Body))
            {
                using (BinaryReader binaryReader = new BinaryReader(memoryStream))
                {
                    long authKeyid     = binaryReader.ReadInt64();
                    long messageId     = binaryReader.ReadInt64();
                    int  messageLength = binaryReader.ReadInt32();

                    byte[] response = binaryReader.ReadBytes(messageLength);

                    return(response);
                }
            }
        }
        public async Task <byte[]> Receive(CancellationToken token = default(CancellationToken))
        {
            token.ThrowIfCancellationRequested();

            var result = await transport.Receive(token).ConfigureAwait(false);

            using (var memoryStream = new MemoryStream(result.Body))
            {
                using (BinaryReader binaryReader = new BinaryReader(memoryStream))
                {
                    long authKeyid     = binaryReader.ReadInt64();
                    long messageId     = binaryReader.ReadInt64();
                    int  messageLength = binaryReader.ReadInt32();

                    byte[] response = binaryReader.ReadBytes(messageLength);

                    return(response);
                }
            }
        }