dispose method

  1. @override
Future<void> dispose()
override

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();
}