connect method

Future<RSocket> connect(
  1. String url, {
  2. Duration? connectTimeout,
})

Implementation

Future<RSocket> connect(String url, {Duration? connectTimeout}) async {
  TcpChunkHandler handler = (Uint8List chunk) {};
  var connectionSetupPayload = ConnectionSetupPayload()
    ..keepAliveIntervalMs = keepAliveIntervalMs
    ..keepAliveMaxLifetimeMs = keepAliveMaxLifeTimeMs
    ..metadataMimeType = _metadataMimeType
    ..dataMimeType = _dataMimeType
    ..data = payload?.data
    ..metadata = payload?.metadata;

  final conn = await connectRSocket(
    url,
    handler,
    _socketClosedCallback,
    connectTimeout: connectTimeout,
  );

  var rsocketRequester =
      RSocketRequester('requester', connectionSetupPayload, conn);
  if (_acceptor != null) {
    rsocketRequester.responder =
        _acceptor!(connectionSetupPayload, rsocketRequester);
    if (rsocketRequester.responder == null) {
      rsocketRequester.close();
      throw SocketException(
          'RSOCKET-0x00000003: Connection refused, please check setup and security!');
    }
  } else {
    rsocketRequester.responder = RSocket();
  }
  rsocketRequester.errorConsumer = _errorConsumer;
  rsocketRequester.sendSetupPayload();
  return rsocketRequester;
}