I'm using the stomp-client library and i want to know if it is possible to know if the message was delivered to the queue. Because im implementing a java service to do the dequeue of the messages and an node js to send the messages to the queue. the code bellow shows how I send the message to the queue.
this._stompClient.publish('/queue/MessagesQueue', messageToPublish, { })
When you send a SEND
frame (i.e. publish a message) you can add a receipt
header and then when you receive the RECEIPT
frame from the broker you know it has successfully received the message. The STOMP specification says this about the receipt
header:
Any client frame other than
CONNECT
MAY specify areceipt
header with an arbitrary value. This will cause the server to acknowledge receipt of the frame with aRECEIPT
frame which contains the value of this header as the value of thereceipt-id
header in theRECEIPT
frame.
However, looking at the documentation for stomp-client
I don't see any mention of how to receive RECEIPT
frames. I actually would expect the ability to specify a callback on the publish
method which was called when the RECEIPT
frame is received. It doesn't appear that stomp-client
supports working with receipts. Unfortunately that means there's no real way to confirm the message was received by the broker.
I recommend you find a more mature STOMP client implementation that supports receipts. For example stomp-js supports receipts.