2017-03-21 81 views
1

我正在使用webstomp與我的消息代理(本例中是兔子)進行通信。如何知道是否發送了一個stomp消息?

當我想要寫一個消息我做到以下幾點:由兔正確接收

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'}); 

此消息,但我想有一個方法來確認比viasually更多。類似於:

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

有沒有辦法做到這一點?

謝謝先進。

回答

1

消息可以可靠地從發佈者傳輸到代理。 (使用交易或確認)。消息也可以可靠地從代理轉移給消費者。 (使用確認) 綜合起來,這提供了從發佈者到消費者的可靠轉移。

因此,在這種情況下,我要補充這個頭:

{persistent: true} 

或者使用一個交易爲:

// 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(); 
相關問題