waitForClientDataSocket method

Future<void> waitForClientDataSocket({
  1. Duration? timeout,
})

Implementation

Future<void> waitForClientDataSocket({Duration? timeout}) {
  Future<Socket> result;
  if (_secureDataListener != null) {
    var secureResult = _secureDataListener!.first;
    if (timeout != null) {
      secureResult = secureResult.timeout(timeout, onTimeout: () {
        throw TimeoutException(
            'Timeout reached while waiting for client data socket');
      });
    }
    result = secureResult;
  } else {
    var plainResult = dataListener!.first;
    if (timeout != null) {
      plainResult = plainResult.timeout(timeout, onTimeout: () {
        throw TimeoutException(
            'Timeout reached while waiting for client data socket');
      });
    }
    result = plainResult;
  }
  return result.then((value) {
    dataSocket = value;
  }).catchError((Object e) {
    // dataListener was closed before a client connected (e.g. session ended)
    logger.generalLog('Data connection wait cancelled: $e');
  });
}