unsubscribe method
This unsubscribes the session from a subscription. Use the Subscribed.subscriptionId to unsubscribe.
Implementation
Future<void> unsubscribe(int subscriptionId) async {
var unsubscribe = Unsubscribe(nextUnsubscribeId++, subscriptionId);
_transport.send(unsubscribe);
await _openSessionStreamController.stream.where((message) {
if (message is Unsubscribed &&
message.unsubscribeRequestId == unsubscribe.requestId) {
return true;
}
if (message is Error &&
message.requestTypeId == MessageTypes.codeUnsubscribe &&
message.requestId == unsubscribe.requestId) {
throw message;
}
return false;
}).first;
subscriptions.remove(subscriptionId);
}