Class MqttProducer
Produces to an endpoint.
Inherited Members
Namespace: Silverback.Messaging.Broker
Assembly: Silverback.Integration.MQTT.dll
Syntax
public sealed class MqttProducer : Producer<MqttBroker, MqttProducerEndpoint>, IProducer, IDisposable
Constructors
| Improve this doc View sourceMqttProducer(MqttBroker, MqttProducerEndpoint, IBrokerBehaviorsProvider<IProducerBehavior>, IServiceProvider, IOutboundLogger<MqttProducer>)
Initializes a new instance of the MqttProducer class.
Declaration
public MqttProducer(MqttBroker broker, MqttProducerEndpoint endpoint, IBrokerBehaviorsProvider<IProducerBehavior> behaviorsProvider, IServiceProvider serviceProvider, IOutboundLogger<MqttProducer> logger)
Parameters
Type | Name | Description |
---|---|---|
MqttBroker | broker | The IBroker that instantiated this producer. |
MqttProducerEndpoint | endpoint | The endpoint to produce to. |
IBrokerBehaviorsProvider<IProducerBehavior> | behaviorsProvider | |
System.IServiceProvider | serviceProvider | The System.IServiceProvider to be used to resolve the required services. |
IOutboundLogger<MqttProducer> | logger |
Methods
| Improve this doc View sourceConnectCoreAsync()
Connects to the message broker.
Declaration
protected override Task ConnectCoreAsync()
Returns
Type | Description |
---|---|
System.Threading.Tasks.Task | A System.Threading.Tasks.Task representing the asynchronous operation. |
Overrides
| Improve this doc View sourceDisconnectCoreAsync()
Disconnects from the message broker.
Declaration
protected override Task DisconnectCoreAsync()
Returns
Type | Description |
---|---|
System.Threading.Tasks.Task | A System.Threading.Tasks.Task representing the asynchronous operation. |
Overrides
| Improve this doc View sourceDispose()
Declaration
public void Dispose()
ProduceCore(Object, Byte[], IReadOnlyCollection<MessageHeader>, String)
Publishes the specified message and returns its identifier.
Declaration
protected override IBrokerMessageIdentifier ProduceCore(object message, byte[] messageBytes, IReadOnlyCollection<MessageHeader> headers, string actualEndpointName)
Parameters
Type | Name | Description |
---|---|---|
System.Object | message | The message to be delivered before serialization. This might be null if RawProduce(Byte[], IReadOnlyCollection<MessageHeader>), RawProduce(Stream, IReadOnlyCollection<MessageHeader>), RawProduceAsync(Byte[], IReadOnlyCollection<MessageHeader>) or RawProduceAsync(Stream, IReadOnlyCollection<MessageHeader>) have been used to produce. |
System.Byte[] | messageBytes | The actual serialized message to be delivered. |
System.Collections.Generic.IReadOnlyCollection<MessageHeader> | headers | The message headers. |
System.String | actualEndpointName | The actual endpoint to produce to. |
Returns
Type | Description |
---|---|
IBrokerMessageIdentifier | The message identifier assigned by the broker (the Kafka offset or similar). |
Overrides
| Improve this doc View sourceProduceCore(Object, Byte[], IReadOnlyCollection<MessageHeader>, String, Action<IBrokerMessageIdentifier>, Action<Exception>)
Publishes the specified message and returns its identifier.
Declaration
protected override void ProduceCore(object message, byte[] messageBytes, IReadOnlyCollection<MessageHeader> headers, string actualEndpointName, Action<IBrokerMessageIdentifier> onSuccess, Action<Exception> onError)
Parameters
Type | Name | Description |
---|---|---|
System.Object | message | The message to be delivered before serialization. This might be null if RawProduce(Byte[], IReadOnlyCollection<MessageHeader>), RawProduce(Stream, IReadOnlyCollection<MessageHeader>), RawProduceAsync(Byte[], IReadOnlyCollection<MessageHeader>) or RawProduceAsync(Stream, IReadOnlyCollection<MessageHeader>) have been used to produce. |
System.Byte[] | messageBytes | The actual serialized message to be delivered. |
System.Collections.Generic.IReadOnlyCollection<MessageHeader> | headers | The message headers. |
System.String | actualEndpointName | The actual endpoint to produce to. |
System.Action<IBrokerMessageIdentifier> | onSuccess | The callback to be invoked when the message is successfully produced. |
System.Action<System.Exception> | onError | The callback to be invoked when the produce fails. |
Overrides
Remarks
In this implementation the message is synchronously enqueued but produced asynchronously. The callbacks are called when the message is actually produced (or the produce failed).
ProduceCore(Object, Stream, IReadOnlyCollection<MessageHeader>, String)
Publishes the specified message and returns its identifier.
Declaration
protected override IBrokerMessageIdentifier ProduceCore(object message, Stream messageStream, IReadOnlyCollection<MessageHeader> headers, string actualEndpointName)
Parameters
Type | Name | Description |
---|---|---|
System.Object | message | The message to be delivered before serialization. This might be null if RawProduce(Byte[], IReadOnlyCollection<MessageHeader>), RawProduce(Stream, IReadOnlyCollection<MessageHeader>), RawProduceAsync(Byte[], IReadOnlyCollection<MessageHeader>) or RawProduceAsync(Stream, IReadOnlyCollection<MessageHeader>) have been used to produce. |
System.IO.Stream | messageStream | The actual serialized message to be delivered. |
System.Collections.Generic.IReadOnlyCollection<MessageHeader> | headers | The message headers. |
System.String | actualEndpointName | The actual endpoint to produce to. |
Returns
Type | Description |
---|---|
IBrokerMessageIdentifier | The message identifier assigned by the broker (the Kafka offset or similar). |
Overrides
| Improve this doc View sourceProduceCore(Object, Stream, IReadOnlyCollection<MessageHeader>, String, Action<IBrokerMessageIdentifier>, Action<Exception>)
Publishes the specified message and returns its identifier.
Declaration
protected override void ProduceCore(object message, Stream messageStream, IReadOnlyCollection<MessageHeader> headers, string actualEndpointName, Action<IBrokerMessageIdentifier> onSuccess, Action<Exception> onError)
Parameters
Type | Name | Description |
---|---|---|
System.Object | message | The message to be delivered before serialization. This might be null if RawProduce(Byte[], IReadOnlyCollection<MessageHeader>), RawProduce(Stream, IReadOnlyCollection<MessageHeader>), RawProduceAsync(Byte[], IReadOnlyCollection<MessageHeader>) or RawProduceAsync(Stream, IReadOnlyCollection<MessageHeader>) have been used to produce. |
System.IO.Stream | messageStream | The message to be delivered. |
System.Collections.Generic.IReadOnlyCollection<MessageHeader> | headers | The message headers. |
System.String | actualEndpointName | The actual endpoint to produce to. |
System.Action<IBrokerMessageIdentifier> | onSuccess | The callback to be invoked when the message is successfully produced. |
System.Action<System.Exception> | onError | The callback to be invoked when the produce fails. |
Overrides
Remarks
In this implementation the message is synchronously enqueued but produced asynchronously. The callbacks are called when the message is actually produced (or the produce failed).
ProduceCoreAsync(Object, Byte[], IReadOnlyCollection<MessageHeader>, String)
Publishes the specified message and returns its identifier.
Declaration
protected override async Task<IBrokerMessageIdentifier> ProduceCoreAsync(object message, byte[] messageBytes, IReadOnlyCollection<MessageHeader> headers, string actualEndpointName)
Parameters
Type | Name | Description |
---|---|---|
System.Object | message | The message to be delivered before serialization. This might be null if RawProduce(Byte[], IReadOnlyCollection<MessageHeader>), RawProduce(Stream, IReadOnlyCollection<MessageHeader>), RawProduceAsync(Byte[], IReadOnlyCollection<MessageHeader>) or RawProduceAsync(Stream, IReadOnlyCollection<MessageHeader>) have been used to produce. |
System.Byte[] | messageBytes | The actual serialized message to be delivered. |
System.Collections.Generic.IReadOnlyCollection<MessageHeader> | headers | The message headers. |
System.String | actualEndpointName | The actual endpoint to produce to. |
Returns
Type | Description |
---|---|
System.Threading.Tasks.Task<IBrokerMessageIdentifier> | A System.Threading.Tasks.Task<TResult> representing the asynchronous operation. The task result contains the message identifier assigned by the broker (the Kafka offset or similar). |
Overrides
| Improve this doc View sourceProduceCoreAsync(Object, Byte[], IReadOnlyCollection<MessageHeader>, String, Action<IBrokerMessageIdentifier>, Action<Exception>)
Publishes the specified message and returns its identifier.
Declaration
protected override async Task ProduceCoreAsync(object message, byte[] messageBytes, IReadOnlyCollection<MessageHeader> headers, string actualEndpointName, Action<IBrokerMessageIdentifier> onSuccess, Action<Exception> onError)
Parameters
Type | Name | Description |
---|---|---|
System.Object | message | The message to be delivered before serialization. This might be null if RawProduce(Byte[], IReadOnlyCollection<MessageHeader>), RawProduce(Stream, IReadOnlyCollection<MessageHeader>), RawProduceAsync(Byte[], IReadOnlyCollection<MessageHeader>) or RawProduceAsync(Stream, IReadOnlyCollection<MessageHeader>) have been used to produce. |
System.Byte[] | messageBytes | The actual serialized message to be delivered. |
System.Collections.Generic.IReadOnlyCollection<MessageHeader> | headers | The message headers. |
System.String | actualEndpointName | The actual endpoint to produce to. |
System.Action<IBrokerMessageIdentifier> | onSuccess | The callback to be invoked when the message is successfully produced. |
System.Action<System.Exception> | onError | The callback to be invoked when the produce fails. |
Returns
Type | Description |
---|---|
System.Threading.Tasks.Task | A System.Threading.Tasks.Task representing the asynchronous operation. The System.Threading.Tasks.Task will complete as soon as the message is enqueued. |
Overrides
Remarks
The returned System.Threading.Tasks.Task completes when the message is enqueued while the callbacks are called when the message is actually produced (or the produce failed).
ProduceCoreAsync(Object, Stream, IReadOnlyCollection<MessageHeader>, String)
Publishes the specified message and returns its identifier.
Declaration
protected override async Task<IBrokerMessageIdentifier> ProduceCoreAsync(object message, Stream messageStream, IReadOnlyCollection<MessageHeader> headers, string actualEndpointName)
Parameters
Type | Name | Description |
---|---|---|
System.Object | message | The message to be delivered before serialization. This might be null if RawProduce(Byte[], IReadOnlyCollection<MessageHeader>), RawProduce(Stream, IReadOnlyCollection<MessageHeader>), RawProduceAsync(Byte[], IReadOnlyCollection<MessageHeader>) or RawProduceAsync(Stream, IReadOnlyCollection<MessageHeader>) have been used to produce. |
System.IO.Stream | messageStream | The message to be delivered. |
System.Collections.Generic.IReadOnlyCollection<MessageHeader> | headers | The message headers. |
System.String | actualEndpointName | The actual endpoint to produce to. |
Returns
Type | Description |
---|---|
System.Threading.Tasks.Task<IBrokerMessageIdentifier> | A System.Threading.Tasks.Task<TResult> representing the asynchronous operation. The task result contains the message identifier assigned by the broker (the Kafka offset or similar). |
Overrides
| Improve this doc View sourceProduceCoreAsync(Object, Stream, IReadOnlyCollection<MessageHeader>, String, Action<IBrokerMessageIdentifier>, Action<Exception>)
Publishes the specified message and returns its identifier.
Declaration
protected override async Task ProduceCoreAsync(object message, Stream messageStream, IReadOnlyCollection<MessageHeader> headers, string actualEndpointName, Action<IBrokerMessageIdentifier> onSuccess, Action<Exception> onError)
Parameters
Type | Name | Description |
---|---|---|
System.Object | message | The message to be delivered before serialization. This might be null if RawProduce(Byte[], IReadOnlyCollection<MessageHeader>), RawProduce(Stream, IReadOnlyCollection<MessageHeader>), RawProduceAsync(Byte[], IReadOnlyCollection<MessageHeader>) or RawProduceAsync(Stream, IReadOnlyCollection<MessageHeader>) have been used to produce. |
System.IO.Stream | messageStream | The message to be delivered. |
System.Collections.Generic.IReadOnlyCollection<MessageHeader> | headers | The message headers. |
System.String | actualEndpointName | The actual endpoint to produce to. |
System.Action<IBrokerMessageIdentifier> | onSuccess | The callback to be invoked when the message is successfully produced. |
System.Action<System.Exception> | onError | The callback to be invoked when the produce fails. |
Returns
Type | Description |
---|---|
System.Threading.Tasks.Task | A System.Threading.Tasks.Task representing the asynchronous operation. The System.Threading.Tasks.Task will complete as soon as the message is enqueued. |
Overrides
Remarks
The returned System.Threading.Tasks.Task completes when the message is enqueued while the callbacks are called when the message is actually produced (or the produce failed).