Spec-Zone.ru › Dart 2

dart:io

Свойство connectionFactory

void connectionFactory=(Future<ConnectionTask<Socket>> f(Uri url, String? proxyHost, int? proxyPort)?)

Устанавливает функцию, используемую для создания соединений с сокетами.

Запрашиваемый URL (например, через getUrl) и конфигурация прокси (f.proxyHost и f.proxyPort) передаются в качестве аргументов. f.proxyHost и f.proxyPort будут null если соединение не устанавливается через прокси.

Поскольку соединения могут быть повторно использованы на основе хоста и порта, важно, чтобы функция не игнорировала f.proxyHost и f.proxyPort, если они не null. Если прокси не имеют значения для возвращаемого Socket, вы можете установить findProxy для использования прямого соединения.

Например:

import "dart:io";

void main() async {
  HttpClient client = HttpClient()
    ..connectionFactory = (Uri uri, String? proxyHost, int? proxyPort) {
        assert(proxyHost == null);
        assert(proxyPort == null);
        var address = InternetAddress("/var/run/docker.sock",
            type: InternetAddressType.unix);
        return Socket.startConnect(address, 0);
    }
    ..findProxy = (Uri uri) => 'DIRECT';

  final request = await client.getUrl(Uri.parse("http://ignored/v1.41/info"));
  final response = await request.close();
  print(response.statusCode);
  await response.drain();
  client.close();
}

Реализация

void set connectionFactory(
    Future<ConnectionTask<Socket>> Function(
            Uri url, String? proxyHost, int? proxyPort)?
        f);

© 2012 the Dart project authors
Licensed under the BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.18.5/dart-io/HttpClient/connectionFactory.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API