dispose method
Disconnects and releases every stream this client owns.
Call it when a client created with create goes out of scope. An app-lifetime singleton does not need it.
Implementation
@override
Future<void> dispose() async {
for (final subscription in _subscriptions) {
await subscription.cancel();
}
_subscriptions.clear();
for (final controller in _controllers) {
await controller.close();
}
_controllers.clear();
for (final controller in _eventControllers.values) {
await controller.close();
}
_eventControllers.clear();
await _messageController.close();
await _stateController.close();
await _errorController.close();
await _reconnectedController.close();
await _qualityController.close();
await _deliveryController.close();
}