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