/ / Referenzierung von activemq mit STOMP - Websocket, Apache-Camel, activemq, stomp

ActiveMq mit STOMP referenzieren - Websocket, Apache-Camel, activemq, stampfen

Ich verwende Stomp-Nachrichten und habe ein Thema in meinem Client / Browser-Code abonniert:

stompClient.subscribe("/topic/informer", function(greeting){
showGreeting(JSON.parse(greeting.body).content);
});

Ich verwende eine Kamelroute, die eine Nachricht an ein activemq-Thema sendet:

Ich habe beide ausprobiert:

<to uri="activemq:topic:informer"/>

und:

<to uri="stomp:topic:informer"/>

Beide erstellen einfach ein Thema in activemq undStellen Sie die Nachrichten dort in eine Warteschlange. Sie erreichen den Kunden nie. Für mich bedeutet dies, dass das / topic / informer im Client vom topic: informer getrennt ist, das ich in der activemq-Konsole sehen kann. Weiß jemand, wie man sie verknüpft, indem er das activemq-Thema abonniert oder die Kamelroute so ändert, dass sie an das Thema sendet, auf das das Abonnement verweist?

Vielen Dank im Voraus für alle Tipps / Ratschläge!

Antworten:

1 für die Antwort № 1

Ist Ihr STOMP-Client verbunden und abonniert?bevor die Nachricht gesendet wird? Themen sind keine Warteschlangen. Sie behalten gesendete Nachrichten nicht bei, wenn zum Zeitpunkt des Sendens kein Client abonniert war. Wenn der Client nach dem Senden der Nachricht eine Verbindung herstellt, erhält er nichts, es sei denn, er verwendet ein Abonnement für dauerhafte Themen wurde zuvor erstellt.


0 für die Antwort № 2

Abgesehen von den Fragen von @Tim habe ich einige Fragen.

  1. Welche STOMP-Clientbibliothek verwenden Sie in Ihrem Client / Browser-Code? Die Art und Weise, wie Sie das Thema angeben, hängt manchmal von der verwendeten Client-Bibliothek ab. Bitte überprüfen Sie die Kundendokumentation.

  2. Sehen Sie in den Broker-Protokollen, für welches Thema der Abonnent sich anmeldet?

  3. Wenn Sie die ActiveMQ-Konsole sehen können, können Sie feststellen, ob ein anderes Thema mit dem Wort "informer" erstellt wurde. Wenn ja, können Sie leicht herausfinden, was falsch läuft.