Ich habe eine Dienstanwendung, die so ziemlich wie eine SignalR Backplane funktioniert, also dachte ich, es wäre eine gute Idee, meine eigene IMessageBus
Implementierung zu erstellen, um mit dem Backend zu sprechen, anstatt mein eigenes Ding auszurollen. Das Problem ist, dass ich nicht viele Informationen über diesen Vertrag finden kann. Obwohl ich mir den Code angesehen habe (der sehr gut aussieht), habe ich Probleme, einige Konzepte zu verstehen.Basic SignalR IMessageBus Implementierung
public interface IMessageBus
{
Task Publish(Message message);
IDisposable Subscribe(ISubscriber subscriber, string cursor, Func<MessageResult, object, Task<bool>> callback, int maxMessages, object state);
}
Task Publish(Message message);
Das ist einfach, im Grunde muss es eine Nachricht an das Backend senden. Ich mache mir deswegen keine Sorgen, weil meine App von Server zu Client unidirektional ist.
IDisposable Subscribe(ISubscriber subscriber, string cursor, Func<MessageResult, object, Task<bool>> callback, int maxMessages, object state);
return
: TrotzIDisposable
zu sagen, ich habe es immer ein Abonnement-Objekt zurück gesehen, aber warumIDisposable
?subscriber
identifiziert eine Verbindung. Diese Verbindung kann Gruppen abonnieren oder abbestellen.cursor
: ist die letzte empfangene Nachrichten-ID.callback
: Wann wird dieser Rückruf ausgeführt?state
: was genau ist das?
Kann jemand mir erklären, wie diese Methode?