public Task PublishAsync <T>(T obj, CancellationToken token = default) where T : class, new() { using var connection = _natsConnectionFactory.CreateConnection(); connection.Publish(_natsSubjectProvider.GetSubject <T>(), _natsMessageSerializer.Serialize(obj)); return(Task.CompletedTask); }
public NatsHostedHandler( INatsConnectionFactory natsConnectionFactory, INatsSubjectProvider natsSubjectProvider, INatsMessageSerializer natsMessageSerializer, IMessageHandler <TEvent> messageHandler) { using var connection = natsConnectionFactory.CreateConnection(); _subscription = connection.SubscribeAsync( natsSubjectProvider.GetSubject <TEvent>(), (_, args) => new NatsMessageHandler <TEvent>(messageHandler, natsMessageSerializer).HandleAsync( args.Message)); }