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(); }
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); }