Interface IMessageBroker
Message broker interface.
public interface IMessageBroker
- Extension Methods
Remarks
This is the generic interface of a message broker.
While a basic implementation as a local service is
Notes on:
Methods
Publish(string, object)
Publish a message
on subject
.
void Publish(string subject, object message)
Parameters
PublishRequest<TRet>(string, object, int)
Publish a request message
on subject
to asynchronously return TRet
with optional timeout
).
Task<TRet> PublishRequest<TRet>(string subject, object message, int timeout = 0) where TRet : class
Parameters
Returns
- Task<TRet>
Type Parameters
TRet
SubscribeRequest<TMsg, TRet>(string, Func<TMsg, Task<TRet>>)
Subscribe for a request on subject
to receive async. messages of type type TMsg
and to return TRet
.
void SubscribeRequest<TMsg, TRet>(string subject, Func<TMsg, Task<TRet>> requestHandler) where TMsg : notnull where TRet : notnull
Parameters
Type Parameters
TMsg
TRet
SubscribeRequest<TMsg, TRet>(string, Func<TMsg, TRet>)
Subscribe for a request on subject
to receive messages of type type TMsg
and to return TRet
.
void SubscribeRequest<TMsg, TRet>(string subject, Func<TMsg, TRet> requestHandler) where TMsg : notnull where TRet : notnull
Parameters
Type Parameters
TMsg
TRet
Subscribe<T>(string, Action<T>)
Subscribe on subject
to receive messages of type type T
.
void Subscribe<T>(string subject, Action<T> subHandler) where T : notnull
Parameters
Type Parameters
T
Subscribe<T>(string, Func<T, Task>)
Subscribe on subject
to receive messages of type type T
.
void Subscribe<T>(string subject, Func<T, Task> subHandler) where T : notnull
Parameters
Type Parameters
T
Unsubscribe(Delegate?)
Unsubscribe handler
from any subscriptions.
void Unsubscribe(Delegate? handler)
Parameters
handler
Delegate