unsubscribe method
dynamic
unsubscribe(
{ - required String publisherSession,
})
Implementation
unsubscribe({required String publisherSession}) async {
Completer completer = Completer();
try {
if (_state != CallState.subscribeState &&
_state != CallState.connectState &&
_state != CallState.activeState) {
completer.completeError(
{'error': 'The state that cannot unsubscribe, state $_state'});
return;
}
if (publisherSession.length > 128) {
completer.completeError({'error': 'Invalid publisher session'});
return;
}
if (!_subscribers.containsKey(publisherSession)) {
completer.completeError({
'error':
'Invalid parameter, not found to unsubscribe, $publisherSession'
});
return;
}
var unsubscribeResult = await _ws.requestUnsubscribe(publisherSession);
_subscribers.remove(publisherSession);
var userResult = IResponseUnsubscribe(unsubscribeResult).toMap();
completer.complete(userResult);
return completer.future;
} catch (error) {
completer.completeError(error);
}
}