Beispiel #1
0
        private async Task ReceiveMessagesOnSubscribeOnAddress()
        {
            if (!IsConnected)
            {
                return;
            }
            while (IsConnected)
            {
                var responseSb = new StringBuilder();
                var buffer     = new byte[Buffersize];
                var bytes      = await TcpStream.ReadAsync(buffer, 0, buffer.Length);

                if (bytes <= 0)
                {
                    continue;
                }
                do
                {
                    responseSb.Append(Encoding.UTF8.GetString(buffer, 0, bytes));
                }while (TcpStream.DataAvailable);
                var message = responseSb.ToString();

                if (message.Contains("\"result\": null,"))
                {
                    Console.WriteLine("Received ping message");
                    continue;
                }
                var response = !string.IsNullOrEmpty(message) ? JsonConvert.DeserializeObject <BlockchainScriphashSubscribeResponse>(message) : null;
                if (response != null)
                {
                    OnReceiveMessageOnAddress?.Invoke(this, response.Params[0]);
                }
            }
        }