public async Task SendMessageAsync(TMessage message)
        {
            PutRecordRequest requestRecord = new PutRecordRequest();

            requestRecord.StreamName = streamName;

            requestRecord.Data = new MemoryStream(serializer.SerializeToArray(message));

            requestRecord.PartitionKey = partitionKeyFunc(message);

            await kinesisClient.PutRecordAsync(requestRecord);
        }
Exemple #2
0
        public override void SendMessageToTopic <TContent>(string topicName, TContent messageContent, string correlationId = null)
        {
            try
            {
                using (var msg = ContextFactory.Instance.CreateMessage())
                {
                    msg.CorrelationId = correlationId;
                    msg.DeliveryMode  = MessageDeliveryMode.Persistent;
                    msg.Destination   = ContextFactory.Instance.CreateTopic(topicName);
                    msg.SetBinaryAttachment((sbyte[])(Array)serializer.SerializeToArray(messageContent));
                    var returnCode = session.Send(msg);

                    if (returnCode != ReturnCode.SOLCLIENT_OK)
                    {
                        throw new SendFailedException($"Response from Send Function = {returnCode}");
                    }
                }
            }catch (SolaceSystems.Solclient.Messaging.OperationErrorException ex)
            {
                log.Error(ex, $"Error sending a message. Error Info:{ex.ErrorInfo}");
                throw;
            }
        }
Exemple #3
0
        public void SendMessageToTopic <TMessage>(string topicName, TMessage messageContent, string correlationId = null)
        {
            var client = new TopicClient(asbConnectionString, topicName);

            client.SendAsync(new Message(serializer.SerializeToArray(messageContent))).Wait();
        }
Exemple #4
0
        public void SendMessageToTopic <TMessage>(string topicName, TMessage messageContent, string correlationId = null)
        {
            var model = rabbitMQ.CreateModel();
            var props = model.CreateBasicProperties();

            props.AppId         = connectionDetails.ClientId;
            props.CorrelationId = correlationId ?? Guid.NewGuid().ToString();
            props.Type          = typeof(TMessage).Name;

            model.BasicPublish(new PublicationAddress(ExchangeType.Topic, topicName, ""), props, serializer.SerializeToArray(messageContent));
        }