subscribe method
Subscribes to a destination
Implementation
Future<StompSubscription> subscribe({
required String destination,
String? id,
StompAckMode ackMode = StompAckMode.auto,
bool requestReceipt = false,
Map<String, String>? headers,
}) async {
_ensureConnected();
final subscriptionId = id ?? _generateSubscriptionId();
String? receiptId;
if (requestReceipt) {
receiptId = _generateReceiptId();
}
final subscribeFrame = StompFrameFactory.subscribe(
destination: destination,
id: subscriptionId,
ack: ackMode.toHeaderValue(),
receipt: receiptId,
additionalHeaders: headers,
);
await _sendFrame(subscribeFrame);
// Wait for receipt if requested
if (receiptId != null) {
await _waitForReceipt(receiptId, _timeout);
}
// Create subscription
final subscription = _subscriptionManager.addSubscription(
id: subscriptionId,
destination: destination,
ackMode: ackMode.toHeaderValue(),
headers: headers,
);
_logger.info('Subscribed to $destination with ID $subscriptionId');
return subscription;
}