예제 #1
0
 public Task Send(NewBlockEvent blockEvent)
 {
     if (Clients.Length == 0)
     {
         return(Task.CompletedTask);
     }
     return(Task.WhenAll(Clients.Select(c => c.Send(blockEvent))));
 }
예제 #2
0
        public async Task Send(NewBlockEvent blockEvent)
        {
            string jsonMsg = blockEvent.ToJson(SerializerSettings);
            var    bytes   = UTF8.GetBytes(jsonMsg);
            var    message = new Message(bytes);

            message.MessageId   = blockEvent.Hash.ToString();
            message.ContentType = blockEvent.GetType().ToString();
            await Client.SendAsync(message);
        }
예제 #3
0
        public async Task Send(NewBlockEvent blockEvent)
        {
            string jsonMsg = blockEvent.ToJson(Networks.GetFromCryptoCode(blockEvent.CryptoCode).JsonSerializerSettings);
            var    bytes   = UTF8.GetBytes(jsonMsg);
            var    message = new Message(bytes);

            message.MessageId   = blockEvent.Hash.ToString();
            message.ContentType = blockEvent.GetType().ToString();
            message.UserProperties.Add("CryptoCode", blockEvent.CryptoCode);
            await Client.SendAsync(message);
        }
예제 #4
0
        Task IBrokerClient.Send(NewBlockEvent blockEvent)
        {
            CheckAndOpenConnection();

            string jsonMsg = blockEvent.ToJson(Networks.GetFromCryptoCode(blockEvent.CryptoCode).JsonSerializerSettings);
            var    body    = Encoding.UTF8.GetBytes(jsonMsg);

            var routingKey = $"blocks.{blockEvent.CryptoCode}";

            IBasicProperties props = Channel.CreateBasicProperties();

            props.MessageId   = blockEvent.Hash.ToString();
            props.ContentType = typeof(NewBlockEvent).ToString();
            props.Headers     = new Dictionary <string, object>();
            props.Headers.Add("CryptoCode", blockEvent.CryptoCode);

            Channel.BasicPublish(
                exchange: NewBlockExchange,
                routingKey: routingKey,
                basicProperties: props,
                body: body);

            return(Task.CompletedTask);
        }