2017-03-21 4 views
1

Ich verwende Webstomp, um mit meinem Nachrichtenbroker (in diesem Fall Kaninchen) zu kommunizieren.Woher weiß man, ob eine Stomp-Nachricht korrekt gesendet wurde?

Wenn ich möchte eine Botschaft, die ich tun folgendes schreiben:

import * as SockJS from 'sockjs-client'; 
let client = Stomp.over(new SockJS(serverAddress)); 
client.connect(user, pass, onConnect, onError); 
client.send('/exchange/amq.direct/test', {test: 'one', test2: 'two'}); 

Diese Nachricht korrekt von Rabbit empfangen wird, aber ich möchte einen Weg haben, dass mehr zu bestätigen, als viasually. Ähnliches:

client.send('/exchange/amq.direct/test', {test: 'one', test2: 'two'}) 
.then(() => {console.log('Message received correctly')}) 
.catch((err) => {console.log('Imposible send the message')}) 

Gibt es eine Möglichkeit, dies zu tun?

Danke in fortgeschrittenem.

Antwort

1

Nachrichten können zuverlässig vom Publisher zum Broker übertragen werden. (mit Transaktionen oder bestätigt). Nachrichten können auch zuverlässig vom Broker zum Verbraucher übertragen werden. (unter Verwendung von Bestätigungen) Zusammengenommen bietet dies eine zuverlässige Übertragung von Publishern zu Verbrauchern.

Also in diesem Fall sollte ich diesen Header hinzufügen:

{persistent: true} 

Oder eine Transaktion verwenden, wie:

// start the transaction 
var tx = client.begin(); 
// send the message in a transaction 
client.send("/queue/test", {transaction: tx.id}, "message in a transaction"); 
// commit the transaction to effectively send the message 
tx.commit(); 
Verwandte Themen