internal static async Task Main(string[] args) { IReadOnlyList <IHubProtocol> protocols = new IHubProtocol[] { new JsonHubProtocol() }; var busControl = Bus.Factory.CreateUsingRabbitMq(cfg => { cfg.Host(new Uri("rabbitmq://localhost"), h => { h.Username("guest"); h.Password("guest"); }); }); // Important! The bus must be started before using it! await busControl.StartAsync(); do { Console.WriteLine("Enter message (or quit to exit)"); Console.Write("> "); string value = Console.ReadLine(); if ("quit".Equals(value, StringComparison.OrdinalIgnoreCase)) { break; } await busControl.Publish <All <ChatHub> >(new { Messages = protocols.ToProtocolDictionary("broadcastMessage", new object[] { "backend-process", value }) }); }while (true); await busControl.StopAsync(); }
public async Task <IActionResult> MasstransitSend() { var protocols = new IHubProtocol[] { new JsonHubProtocol() }; await _publishEndpoint.Publish <All <ChatHub> >(new { Messages = protocols.ToProtocolDictionary("ReceiveMessage", new object[] { "message", "bbb" }) }); return(Accepted()); }
public async Task <ExecutionResult> Execute(ExecuteContext <BookFlightArgument> context) { await Task.Delay(BookItem.LongDelay); var protocols = new IHubProtocol[] { new JsonHubProtocol() }; await context.Publish <All <ChatHub> >(new { Messages = protocols.ToProtocolDictionary("ReceiveMessage", new object[] { "message", $"Flight {context.Arguments.Message} was booked!" }) }); return(context.Completed(new { Message = context.Arguments.Message })); }
public async Task <CompensationResult> Compensate(CompensateContext <BookFlightLogs> context) { await Task.Delay(BookItem.LongDelay); var protocols = new IHubProtocol[] { new JsonHubProtocol() }; await context.Publish <All <ChatHub> >(new { Messages = protocols.ToProtocolDictionary("ReceiveMessage", new object[] { "message", $"Flight {context.Log.Message} was canceled!" }) }); return(context.Compensated()); }
public async Task Execute(BehaviorContext <BookingState, BookingFinalized> context, Behavior <BookingState, BookingFinalized> next) { await Task.Delay(1000); var consumeContext = context.GetPayload <ConsumeContext>(); var protocols = new IHubProtocol[] { new JsonHubProtocol() }; await consumeContext.Publish <All <ChatHub> >(new { Messages = protocols.ToProtocolDictionary("ReceiveMessage", new object[] { "done", $"Booking was successfully finalized!" }) }); await next.Execute(context).ConfigureAwait(false); }
public async Task Consume(ConsumeContext <SubmitOrder> context) { var protocols = new IHubProtocol[] { new JsonHubProtocol() }; await context.Publish <All <ChatHub> >(new { Messages = protocols.ToProtocolDictionary("ReceiveMessage", new object[] { "message", "ccc" }) }); await Task.Delay(10); if (context.RequestId != null) //is request/response { if (context.Message.OrderCustomer.Contains("test")) { await context.RespondAsync <SubmitOrderRejected>(new SubmitOrderRejected { OrderId = context.Message.OrderId, OrderCustomer = context.Message.OrderCustomer, Timestmp = InVar.Timestamp, }); return; } else { await context.RespondAsync <SubmitOrderAccepted>(new SubmitOrderAccepted { OrderId = context.Message.OrderId, OrderCustomer = context.Message.OrderCustomer, Timestmp = InVar.Timestamp, }); } } //Saga await context.Publish <OrderSubmitted>(new OrderSubmitted { OrderId = context.Message.OrderId, CustomerNumber = context.Message.OrderCustomer, Timestamp = InVar.Timestamp }); }