start method

Future<void> start()

Implementation

Future<void> start() async {
  String serverAddress = await _getServerAddress();
  if (_client.connection is AnyInspectConnectionImplWs) {
    (_client.connection as AnyInspectConnectionImplWs)
        .setServerUrl('ws://$serverAddress:7700');
  }

  PackageInfo packageInfo = await PackageInfo.fromPlatform();
  _client.appIdentifier = packageInfo.packageName;
  _client.appName = packageInfo.appName;
  _client.appVersion = packageInfo.version;
  _client.appBuildNumber = packageInfo.buildNumber;

  DeviceInfoPlugin deviceInfoPlugin = DeviceInfoPlugin();
  if (kIsWeb) {
    WebBrowserInfo webBrowserInfo = await deviceInfoPlugin.webBrowserInfo;
    _client.deviceId = webBrowserInfo.userAgent;
  } else {
    if (Platform.isAndroid) {
      AndroidDeviceInfo androidDeviceInfo =
          await deviceInfoPlugin.androidInfo;
      _client.deviceId = androidDeviceInfo.id;
      _client.deviceName = androidDeviceInfo.display;
      _client.deviceIsPhysical = androidDeviceInfo.isPhysicalDevice;
    } else if (Platform.isIOS) {
      IosDeviceInfo iosInfo = await deviceInfoPlugin.iosInfo;
      _client.deviceId = iosInfo.identifierForVendor;
      _client.deviceName = iosInfo.name;
      _client.deviceIsPhysical = iosInfo.isPhysicalDevice;
    } else if (Platform.isLinux) {
      LinuxDeviceInfo linuxDeviceInfo = await deviceInfoPlugin.linuxInfo;
      _client.deviceId = linuxDeviceInfo.id;
    } else if (Platform.isMacOS) {
      MacOsDeviceInfo macOsDeviceInfo = await deviceInfoPlugin.macOsInfo;
      _client.deviceId = macOsDeviceInfo.systemGUID;
      _client.deviceName = macOsDeviceInfo.computerName;
    } else if (Platform.isWindows) {
      // WindowsDeviceInfo windowsDeviceInfo =
      //     await deviceInfoPlugin.windowsInfo;
      // _client.deviceName = windowsDeviceInfo.computerName;
      _client.deviceName = Platform.localHostname;
    }
    _client.deviceSystem = Platform.operatingSystem;
    _client.deviceSystemVersion = Platform.operatingSystemVersion;
  }

  try {
    await _connect();
  } catch (error) {
    _startReconnect();
  }
}