beginTransaction method

Future<StompTransaction> beginTransaction({
  1. String? transactionId,
  2. bool requestReceipt = false,
})

Begins a transaction

Implementation

Future<StompTransaction> beginTransaction({
  String? transactionId,
  bool requestReceipt = false,
}) async {
  _ensureConnected();

  final txId = transactionId ?? _generateTransactionId();

  String? receiptId;
  if (requestReceipt) {
    receiptId = _generateReceiptId();
  }

  final beginFrame = StompTransactionFrameFactory.begin(
    transactionId: txId,
    receipt: receiptId,
  );

  await _sendFrame(beginFrame);

  // Wait for receipt if requested
  if (receiptId != null) {
    await _waitForReceipt(receiptId, _timeout);
  }

  // Create transaction
  final transaction = _transactionManager.beginTransaction(txId);
  _logger.info('Began transaction $txId');
  return transaction;
}