static void Main(string[] args) { Console.WriteLine("[{0}] Start Application", DateTime.Now.ToString("hh.mm.ss.ffffff")); MessageFactory messageFactory = CommonConnection.Load().Get <MessageFactory>(); /** connection example **/ var channel = "secret_channel"; //channel for rabbitmq or topic for kafka //subscribe message rabbit ConnectionConfig connection = new ConnectionConfig(MessageBrokerEnum.RabbitMQ, "127.0.0.1", null); IMessageBroker messageBrokerRabbitMq = messageFactory.Create(connection); ((ICommonConsumer)messageBrokerRabbitMq.GetConsumer()).OnMessageReceivedEventHandler += OnMessageReceivedEventHandler; //subscribe message redis ConnectionConfig connectionRedis = new ConnectionConfig(MessageBrokerEnum.Redis, "127.0.0.1", 6379); IMessageBroker messageBrokerRedis = messageFactory.Create(connectionRedis); ((ICommonConsumer)messageBrokerRedis.GetConsumer()).OnMessageReceivedEventHandler += OnMessageReceivedEventHandler; //subscribe message kafka ConnectionConfig connectionKafka = new ConnectionConfig(MessageBrokerEnum.Kafka, "127.0.0.1", 9092); IMessageBroker messageBrokerKafka = messageFactory.Create(connectionKafka); ((ICommonConsumer)messageBrokerKafka.GetConsumer()).OnMessageReceivedEventHandler += OnMessageReceivedEventHandler; messageBrokerKafka.Start(channel); messageBrokerRedis.Start(channel); messageBrokerRabbitMq.Start(channel); /** end of connection example **/ //publish Message RequestMessageData <SomeMessage> objectToSend = new RequestMessageData <SomeMessage>(new SomeMessage(1, "message dikirim", DateTime.Now, new List <string> { "ratna", "santi" })); //some class or object bool isPublish = messageBrokerRedis.PublishRequestMessage(channel, objectToSend); isPublish &= messageBrokerKafka.PublishRequestMessage <SomeMessage>(channel, objectToSend); //could adding additional key for kafka on third parameter (optional) isPublish &= messageBrokerRabbitMq.PublishRequestMessage(channel, objectToSend); // example of publish bulk //publishBulk(messageBrokerRabbitMq, channel, objectToSend); //publishBulk(messageBrokerRedis, channel, objectToSend); //publishBulk(messageBrokerKafka, channel, objectToSend); Console.WriteLine("after task start"); Thread.Sleep(10000); Console.WriteLine("cancel start"); messageBrokerRabbitMq.Unsubscribe(channel); messageBrokerKafka.Unsubscribe(channel); messageBrokerRedis.Unsubscribe(channel); Console.WriteLine("cancel finished"); }
public void Connection_CommonMessageObjectCompleteTest() { var content = new SomeMessage(1, "varA"); var message = new RequestMessageData <SomeMessage>( _data: content, _publishHostUrl: "publishResponseHostUrlTest", _publishHostPort: 123, _publishChannel: "publishResponseChannelTest", _publishType: MessageBrokerEnum.Redis, _cacheHostUrl: "publishResponseCacheHostUrlTest", _cacheHostPort: 456, _cacheKey: "publishResponseCacheKeyTest", _cacheType: CacheTypeEnum.MemoryCache, _cacheTimeoutMiliseconds: 10, _sessionIDGateway: "sessionIdGatewayTest", _userIDGateway: "userIDGatewayTest" ); Assert.IsNotNull(message); Assert.IsNotNull(message.PublishChannel); Assert.IsNotNull(message.CacheKey); Assert.AreEqual(message.Data, content); Assert.IsTrue(message.Data is SomeMessage); }
public void Connection_CommonMessageDefaultTest() { var message = new RequestMessageData <string>("varA"); Assert.IsNotNull(message); Assert.IsNull(message.PublishChannel); Assert.IsNull(message.CacheKey); Assert.AreEqual(message.Data, "varA"); Assert.IsTrue(message.Data is String); }
public void PublishNullTest() { var producer = _mockPublisher.Object; string message = null; string channel = "test_channel"; RequestMessageData <string> cm = new RequestMessageData <string>(message); var isSend = producer.Publish(channel, cm); Assert.IsFalse(isSend); }
public void Connection_CommonMessageObjectTest() { var content = new SomeMessage(1, "varA"); var message = new RequestMessageData <SomeMessage>(content); Assert.IsNotNull(message); Assert.IsNull(message.PublishChannel); Assert.IsNull(message.CacheKey); Assert.AreEqual(message.Data, content); Assert.IsTrue(message.Data is SomeMessage); }
public void RequestMessageDataJsonConvertTest() { var objectToSend = new RequestMessageData <SomeMessage>(new SomeMessage(1, "dua", DateTime.Now, new List <string> { "ratna", "santi" })); //some class or object var serializeObject = JsonConvert.SerializeObject(objectToSend); var deserializeObject = JsonConvert.DeserializeObject <RequestMessageData <SomeMessage> >(serializeObject); Assert.AreEqual(objectToSend.Data.Number, deserializeObject.Data.Number); Assert.AreEqual(objectToSend.Data.Message, deserializeObject.Data.Message); DateTimeAssert.AreEqual(objectToSend.Data.StartDate, deserializeObject.Data.StartDate, TimeSpan.FromMinutes(1)); Assert.AreEqual(objectToSend.Data.MemberList.Count, deserializeObject.Data.MemberList.Count); Assert.IsTrue(deserializeObject.Data.MemberList.Contains("ratna")); Assert.IsTrue(deserializeObject.Data.MemberList.Contains("santi")); }
public void Connection_CommonMessageDefaultCompleteTest() { var message = new RequestMessageData <string>( _data: "versionTest.serviceNameTest.channelTest", _publishHostUrl: "publishResponseHostUrlTest", _publishHostPort: 123, _publishChannel: "publishResponseChannelTest", _publishType: MessageBrokerEnum.Redis, _cacheHostUrl: "publishResponseCacheHostUrlTest", _cacheHostPort: 456, _cacheKey: "publishResponseCacheKeyTest", _cacheType: CacheTypeEnum.MemoryCache, _cacheTimeoutMiliseconds: 10, _sessionIDGateway: "sessionIdGatewayTest", _userIDGateway: "userIDGatewayTest" ); Assert.IsNotNull(message); Assert.IsNotNull(message.PublishChannel); Assert.IsNotNull(message.CacheKey); Assert.AreEqual(message.Data, "versionTest.serviceNameTest.channelTest"); Assert.IsTrue(message.Data is String); }
private static void publishBulkSimple(IMessageBroker messageBroker, string channel, RequestMessageData <string> objectToSend) { var resultDiff = new List <double>(); for (int i = 0; i < 40; i++) { var start = DateTime.Now; messageBroker.PublishRequestMessage <string>(channel, objectToSend); var end = DateTime.Now; var diffTime = (end - start).TotalMilliseconds; resultDiff.Add(diffTime); } Console.WriteLine(resultDiff); }