nack method
Negatively acknowledges a message
Implementation
Future<void> nack({
required String messageId,
String? transactionId,
bool requestReceipt = false,
}) async {
_ensureConnected();
String? receiptId;
if (requestReceipt) {
receiptId = _generateReceiptId();
}
final nackFrame = StompFrameFactory.nack(
id: messageId,
transaction: transactionId,
receipt: receiptId,
);
await _sendFrame(nackFrame);
// Add to transaction if specified
if (transactionId != null) {
_transactionManager.addFrameToTransaction(transactionId, nackFrame);
}
// Process negative acknowledgment
try {
_ackManager.nack(messageId);
} catch (e) {
_logger.warning('Error processing NACK for message $messageId: $e');
}
// Wait for receipt if requested
if (receiptId != null) {
await _waitForReceipt(receiptId, _timeout);
}
}