If you want to enable both HTTP/1.1 pipelining and HTTP/2 multiplexing...
<?php
curl_multi_setopt($mh, CURLMOPT_PIPELINING, 3);
?>
or
<?php
curl_multi_setopt($mh, CURLMOPT_PIPELINING, CURLPIPE_HTTP1 | CURLPIPE_MULTIPLEX);
?>
(PHP 5 >= 5.5.0, PHP 7, PHP 8)
curl_multi_setopt — Устанавливает опции множественного дескриптора cURL
Устанавливает опции множественного дескриптора cURL.
multi_handle
Мультидескриптор cURL, полученный из curl_multi_init().
option
Одна из констант CURLMOPT_*
.
value
Значение, которое необходимо установить для параметра option
.
Значение параметра value
должно быть целым числом (int) для следующих
значений параметра option
:
Опция | Установить value в |
---|---|
CURLMOPT_PIPELINING |
1 для включения и 0 для отключения. Разрешает конвейер для множественного дескриптора, что приведёт к попытке использовать конвейера HTTP, если это возможно, для передачи с использованием этого дескриптора. Это значит, что если вы добавите второй запрос, который может использовать уже существующее соединение, то он будет передан "по конвейеру" этому соединению. Начиная с cURL 7.43.0 значение является битовой маской и вы можете передать 2 для попытки мультиплицирования новой передачи с помощью существующего соединения HTTP/2, если это возможно. Передача 3 инструктирует cURL запрашивать конвейеризацию и мультиплексирование независимо друг от друга. Начиная с cURL 7.62.0, установка бита конвейера не имеет никакого эффекта. Вместо численных значений вы можете использовать константы CURLPIPE_*, если они доступны. |
CURLMOPT_MAXCONNECTS |
Задаёт число максимального количества одновременно открытых соединений, которые libcurl может закешировать. По умолчанию это значение задаётся как число дескрипторов добавленных через curl_multi_add_handle(), умноженное на 4. Когда кеш заполнится, curl закроет самые старые соединения в кеше, предотвращая увеличение количества открытых соединений. |
CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE |
Задаёт пороговое значение длины пакета для конвейера в байтах. |
CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE |
Задаёт пороговое значение размера для "штрафа" конвейера в байтах. |
CURLMOPT_MAX_CONCURRENT_STREAMS |
Устанавливает максимальное количество одновременных потоков
для соединений, которые cURL должен поддерживать
при соединениях по протоколу HTTP/2.
Диапазон допустимых значений — от 1
до 2147483647 (2^31 - 1 ).
Переданное для этой опции значение будет основано с учётом других свойств системных ресурсов.
Значение по умолчанию — 100 .
|
CURLMOPT_MAX_HOST_CONNECTIONS |
Величина, определяющая максимальное количество соединений с одним хостом. |
CURLMOPT_MAX_PIPELINE_LENGTH |
Величина, определяющая максимальное количество запросов в конвейере. |
CURLMOPT_MAX_TOTAL_CONNECTIONS |
Величина, определяющая максимальное количество одновременно открытых соединений. |
CURLMOPT_PUSHFUNCTION |
Передаёт callable, который будет зарегистрирован для обработки пушей
от сервера и должен иметь следующую сигнатуру:
CURL_PUSH_OK , если может обработать пуш, или
CURL_PUSH_DENY , если отклонит его.
|
Возвращает true
в случае успешного выполнения или false
в случае возникновения ошибки.
Версия | Описание |
---|---|
8.2.0 |
Добавлена константа CURLMOPT_MAX_CONCURRENT_STREAMS .
|
8.0.0 |
multi_handle теперь ожидает экземпляр;
раньше, ожидался ресурс (resource).
|
7.1.0 |
Добавлена константа CURLMOPT_PUSHFUNCTION .
|
7.0.7 |
Добавлены константы CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE ,
CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE ,
CURLMOPT_MAX_HOST_CONNECTIONS ,
CURLMOPT_MAX_PIPELINE_LENGTH и
CURLMOPT_MAX_TOTAL_CONNECTIONS .
|
If you want to enable both HTTP/1.1 pipelining and HTTP/2 multiplexing...
<?php
curl_multi_setopt($mh, CURLMOPT_PIPELINING, 3);
?>
or
<?php
curl_multi_setopt($mh, CURLMOPT_PIPELINING, CURLPIPE_HTTP1 | CURLPIPE_MULTIPLEX);
?>