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]); } } }