reconnect method

Future reconnect(
  1. String? url
)

Implementation

Future reconnect(String? url) async {
  // set the uri if url is passed and reconnect
  if (!isNullOrEmpty(url)) {
    Log().info('SOCKET:: Attempting Reconnect ...');

    // set the uri
    Uri? uri = Uri.tryParse(url!);

    // valid url?
    if (uri != null) {
      // reconnect
      if (connected && this.url != uri.toString()) {
        Log().info('SOCKET:: Reconnecting ...');

        // disconnect from existing
        await disconnect();

        // set new uri
        this.uri = uri;

        // reconnect
        await connect(forceReconnect: true);
      }
    }

    // invalid url?
    else {
      Log().error('SOCKET:: The supplied url => $url is invalid');

      // disconnect?
      if (connected) await disconnect();

      // clear existing uri
      this.uri = null;
    }
  }
}