Table of Contents

Interface IMessageBroker

Namespace
Tlabs.Msg
Assembly
Tlabs.Core.dll

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 , this is inteneded to be implemented based on on a stand-alone message broker implementation client like: https://github.com/nats-io/csharp-nats .

Notes on:

Methods

Publish(string, object)

Publish a message on subject.

void Publish(string subject, object message)

Parameters

subject string
message object

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

subject string
message object
timeout int

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

subject string
requestHandler Func<TMsg, Task<TRet>>

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

subject string
requestHandler Func<TMsg, TRet>

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

subject string
subHandler Action<T>

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

subject string
subHandler Func<T, Task>

Type Parameters

T

Unsubscribe(Delegate?)

Unsubscribe handler from any subscriptions.

void Unsubscribe(Delegate? handler)

Parameters

handler Delegate