Frage

Ich bin was sich auf die 'A Request-Reply Broker' in der Zeromq Dokumentation: http: // zguide.zeromq.org/chapter:all

Ich bin mit dem allgemeinen Kern der App bekommen. Es wirkt wie eine Vermittler und leiten Nachrichten vom Client zum Server und wieder zurück

Was ich allerdings nicht immer ist, wie es stellt sicher, dass die richtige Antwort von einem Server auf den richtigen Client gesendet wird, die ursprünglich den Antrag gestellt hat. Ich habe nichts im Codebeispiel sehen, die dies sicher macht.

Jetzt im Beispiel sie nur 1 Nachricht senden (hallo) und 1 Antwort (Welt), so dass selbst wenn Nachrichten gemischt bis es spielt keine Rolle, aber ich glaube, dass der Testclient und Server gehalten werden bewusst einfach.

Alle Gedanken sind willkommen ...

War es hilfreich?

Lösung

Alle zeromq Buchsen haben implizit eine Identität mit ihnen verbunden sind. (Sie können diese Identität erhalten mit zmq_getsockopt () .)

Für die bidirektionale Socket-Typen nicht XREQ oder XREP wird diese Identität automatisch als Teil jeder Nachricht überträgt über die Socket gesendet. Das REP-Buchse verwendet diese Identität auf dem Weg zu der entsprechenden Buchse die Antwortnachricht zurück. Dies hat die Wirkung der automatischen Routing.

Unter der Haube sind Identitäten über mehrteilige Nachrichten übertragen. Die erste Nachricht in einer mehrteiligen Nachricht wird die Socket-Identität enthalten. Eine leere Nachricht folgen, von allen Nachrichten, gefolgt vom Benutzer festgelegt. Die REQ und REP-Buchsen handeln von diesen vorangestellten Nachrichten automatisch. wenn Sie XREQ oder XREP Buchsen jedoch verwenden, müssen Sie sich diese Identität Nachrichten füllen.

Wenn Sie für „Identität“ suchen auf der ZMQ Führer , sollten Sie alle Details finden Sie jemals darüber, wie Identitäten und Routing-Socket-Werke wissen wollen.

Andere Tipps

Ok in Kapitel 3 sie ganz plötzlich erklären, dass es ein zugrunde liegendes Konzept einer ‚Hülle‘, die die erf / bzw. Muster invisubly Anwendungen.

Das erklärt, wie es funktioniert.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top