Example #1
0
 public EventBusForwarder(IActorTransport localTransport)
 {
     _localTransport = localTransport;
     Receive <Publish>(p =>
     {
         _localTransport.Publish(p.Msg);
         Sender.Tell(PublishAck.Instance);
     });
     Receive <PublishMany>(p =>
     {
         var messages = p.Messages.Select(m => m.Msg).ToArray();
         _localTransport.Publish(messages);
         Sender.Tell(PublishManyAck.Instance);
     });
     Receive <Subscribe>(s =>
     {
         _localTransport.Subscribe(s.Topic, s.Actor, s.Notificator);
         Sender.Tell(SubscribeAck.Instance);
     });
     Receive <Unsubscribe>(us =>
     {
         _localTransport.Unsubscribe(us.Actor, us.Topic);
         Sender.Tell(UnsubscribeAck.Instance);
     });
 }
        public void Publish(params object[] messages)
        {
            _local.Publish(messages);

            var remotePublish = new PublishMany(messages.Select(m => new Publish(m, m.GetType())).ToArray());

            _remoteSubscriber.Ask <PublishManyAck>(remotePublish, _timeout).Wait();
        }
Example #3
0
 public void Publish(object msg)
 {
     _local.Publish(msg);
     _remoteSubscriber.Ask <PublishAck>(new Publish(msg), _timeout).Wait();
 }
 public void Execute <T>(T command, IMessageMetadata metadata) where T : ICommand
 {
     _transport.Publish(command, metadata);
 }