addSubscription method
Adds a new subscription
Implementation
StompSubscription addSubscription({
required String id,
required String destination,
String ackMode = StompHeaders.ackAuto,
Map<String, String>? headers,
}) {
if (_subscriptions.containsKey(id)) {
throw StompSubscriptionException('Subscription with ID already exists', id);
}
if (_subscriptions.length >= StompConstants.maxSubscriptions) {
throw StompSubscriptionException('Maximum number of subscriptions reached', id);
}
final subscription = StompSubscription(
id: id,
destination: destination,
ackMode: ackMode,
headers: headers,
);
_subscriptions[id] = subscription;
_subscriptionController.add(subscription);
// Listen for unsubscribe
subscription.onUnsubscribe.listen((_) {
_unsubscribeController.add(id);
});
return subscription;
}