void IMessageBus.Publish(object message)
        {
            var addresses = _subscriptionStorage.GetSubscriberAddressesForMessage(message.GetType());

            foreach (var address in addresses)
            {
                var transportMessage = CreateMessage(message);
                _messageTransport.SendMessage(transportMessage, address);
                if (_logger.IsDebugEnabled)
                {
                    _logger.DebugFormat("Sent Message, Id:{0}, Type:{1}, Current Thread Id:{2}", transportMessage.Id, message.GetType().FullName, Thread.CurrentThread.ManagedThreadId);
                }
            }
        }
        public void PublishEvent(object evnt)
        {
            if (!_started)
            {
                return;
            }

            var eventTypeName = evnt.GetType().FullName;
            var addresses     = _subscriptionStore.GetSubscriberAddressesForMessage(evnt.GetType());

            if (addresses.Count() == 0)
            {
                return;
            }

            var message = CreateMessage(evnt);

            foreach (var address in addresses)
            {
                _logger.DebugFormat("Sending event message '{0}' to address '{1}'.", eventTypeName, address);
                _messageTransport.SendMessage(message, address);
                _logger.DebugFormat("Sent event message '{0}' to address '{1}'.", eventTypeName, address);
            }
        }
Example #3
0
        private Task PublishImpl(IMessage message, CancellationToken token)
        {
            string topic = message.Descriptor.FullName;

            return(_transport.SendMessage(topic, message.ToByteArray(), token));
        }