disconnect method
Disconnects from the room, notifying server of disconnection.
Implementation
Future<void> disconnect() async {
final bool isPendingReconnect = engine.isPendingReconnect;
if (engine.isClosed && !isPendingReconnect && engine.connectionState == ConnectionState.disconnected) {
logger.warning('Engine is already closed');
return;
}
await engine.disconnect();
if (!isPendingReconnect) {
await _engineListener.waitFor<EngineDisconnectedEvent>(duration: const Duration(seconds: 10));
}
await _cleanUp();
}