/// <summary> /// Use JSON for message serialization. /// </summary> /// <param name="cfg"></param> /// <returns></returns> public static MessageBusConfiguration WithJsonMessageSerializer(this MessageBusConfiguration cfg) { ISerializer serializer = new JsonNetSerializer(); Xyperico.Agres.MessageBus.MessageBusConfigurationExtensions.SetMessageSerializer(cfg, serializer); return(cfg); }
/// <summary> /// Use BSON for subscription serialization. /// </summary> /// <param name="cfg"></param> /// <returns></returns> public static MessageBusConfiguration WithBsonSubscriptionSerializer(this MessageBusConfiguration cfg) { IDocumentSerializer serializer = new BsonNetDocumentSerializer(); Xyperico.Agres.MessageBus.MessageBusConfigurationExtensions.SetSubscriptionSerializer(cfg, serializer); return(cfg); }
static void Main(string[] args) { IKernel kernel = new StandardKernel(); IMessageBusConfiguration configuration = MessageBusConfiguration.Create() .EndpointName("TestSubscriber") .ErrorQueueName("SubscriberErrors") .AddMessageDefinition <TestMessage>(d => { d.MessageAction = MessageAction.Event; d.QueueName = "TestService"; d.HandlerType = typeof(TestMessageHandler); }); kernel.Bind <IMessageBusSerialiser>().To <JsonSerialiser>(); kernel.Bind <IMessageBusConfiguration>().ToConstant(configuration).InSingletonScope(); IMessageBusContainer container = new NinjectContainer(kernel); //var bus = new NSBMessageBus(container, configuration); //var bus = new RMQMessageBus(container, configuration); //var bus = new AMQMessageBus(container, configuration); var bus = new WSBMessageBus(container, configuration.HostName("campc-df7.bradyplc.com").ServiceNamespace("TheMagicBus")); bus.Start(); Console.WriteLine("Press Enter to quit"); Console.ReadLine(); }
/// <summary> /// Use MSMQ for message transport. /// </summary> /// <param name="cfg"></param> /// <param name="queueName"></param> /// <returns></returns> public static MessageBusConfiguration WithMSMQ(this MessageBusConfiguration cfg, string queueName) { ISerializer serializer = Xyperico.Agres.MessageBus.MessageBusConfigurationExtensions.GetMessageSerializer(cfg); Msmq.IMessageFormatter messageFormater = new MSMQMessageFormatter(serializer); IMessageSource messageSource = new MSMQMessageSource(queueName, messageFormater); Xyperico.Agres.MessageBus.MessageBusConfigurationExtensions.SetMessageSource(cfg, messageSource); IMessageSink messageSink = new MSMQMessageSink(messageFormater); Xyperico.Agres.MessageBus.MessageBusConfigurationExtensions.SetMessageSink(cfg, messageSink); return(cfg); }
private void ConfigureMassTransitServices(IServiceCollection services) { var messageBusConfiguration = new MessageBusConfiguration(Configuration); services.AddMassTransit(serviceCollectionBusConfigurator => { serviceCollectionBusConfigurator.UsingRabbitMq((_, rabbitMqBusFactoryConfigurator) => { rabbitMqBusFactoryConfigurator.Host( messageBusConfiguration.Hostname, messageBusConfiguration.Port, messageBusConfiguration.VirtualHost, null); }); EndpointConvention.Map <CreateRecordMessageBusMessage>(new Uri($"queue:{messageBusConfiguration.SearchRecordQueueName}")); }); }
private static HostBuilder ConfigureServices() { var hostBuilder = new HostBuilder(); hostBuilder.ConfigureAppConfiguration((_, config) => { config.AddJsonFile("appsettings.json", true); }); hostBuilder.ConfigureServices((hostContext, serviceCollection) => { var messageBusConfiguration = new MessageBusConfiguration(hostContext.Configuration); serviceCollection.AddMassTransit(serviceCollectionBusConfigurator => { serviceCollectionBusConfigurator.AddConsumer <CreateRecordConsumer>().Endpoint(consumerEndpointRegistrationConfigurator => { consumerEndpointRegistrationConfigurator.Name = messageBusConfiguration.SearchRecordQueueName; }); serviceCollectionBusConfigurator.UsingRabbitMq((provider, rabbitMqBusFactoryConfigurator) => { rabbitMqBusFactoryConfigurator.Host( messageBusConfiguration.Hostname, messageBusConfiguration.Port, messageBusConfiguration.VirtualHost, null); rabbitMqBusFactoryConfigurator.ConfigureEndpoints(provider); }); }); serviceCollection.AddHostedService <MessageBusHostedService>(); serviceCollection.AddTransient <ISearchConfiguration, SearchConfiguration>(); serviceCollection.AddTransient <IClientCreator, ClientCreator>(); serviceCollection.AddTransient <IRecordDocumentService, RecordDocumentService>(); }); return(hostBuilder); }
static void Main(string[] args) { IKernel kernel = new StandardKernel(); IMessageBusConfiguration configuration = MessageBusConfiguration.Create() .EndpointName("TestClient") .ErrorQueueName("ClientErrors") .AddMessageDefinition <TestRequest>(d => d.MessageAction = MessageAction.Command); kernel.Bind <IMessageBusSerialiser>().To <JsonSerialiser>(); kernel.Bind <IMessageBusConfiguration>().ToConstant(configuration).InSingletonScope(); IMessageBusContainer container = new NinjectContainer(kernel); //var bus = new NSBMessageBus(container, configuration); //var bus = new RMQMessageBus(container, configuration); //var bus = new AMQMessageBus(container, configuration); var bus = new WSBMessageBus(container, configuration.HostName("campc-df7.bradyplc.com").ServiceNamespace("TheMagicBus")); bus.Start(); SendMessages(bus); }