unsubscribe method

Future<void> unsubscribe({
  1. required String subscriptionId,
  2. bool requestReceipt = false,
})

Unsubscribes from a destination

Implementation

Future<void> unsubscribe({
  required String subscriptionId,
  bool requestReceipt = false,
}) async {
  _ensureConnected();

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

  final unsubscribeFrame = StompFrameFactory.unsubscribe(
    id: subscriptionId,
    receipt: receiptId,
  );

  await _sendFrame(unsubscribeFrame);

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

  // Remove subscription
  _subscriptionManager.removeSubscription(subscriptionId);
  _ackManager.clearSubscription(subscriptionId);

  _logger.info('Unsubscribed from subscription $subscriptionId');
}