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_multi_init() 返回的 cURL 多个句柄。
option
常量 CURLMOPT_*
之一。
value
将要设置给 option
的值。
在 option
参数为下列值时 value
需要为 int 类型:
选项 | 设置 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() 添加的句柄数量的四倍。当缓存已满时,curl 会关闭缓存中最早的一个,以防止打开的连接数增加。 |
CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE |
传递数字,以字节为单位指定管道的块(chunk)长度阈值。 |
CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE |
Pass a number that specifies the size threshold for pipelining penalty in bytes. |
CURLMOPT_MAX_CONCURRENT_STREAMS |
The set number will be used as the maximum number of concurrent streams for a connections that cURL
should support on connections done using HTTP/2. Valid values range from
1 to 2147483647 (2^31 - 1 ).
The value passed here would be honored based on other system resources properties.
Default is 100 .
|
CURLMOPT_MAX_HOST_CONNECTIONS |
传递一个数字,指定连接单个主机的最大数量。 |
CURLMOPT_MAX_PIPELINE_LENGTH |
传递数字,指定管道中的最大请求数。 |
CURLMOPT_MAX_TOTAL_CONNECTIONS |
传递数字,指定同时打开连接的最大数量。 |
CURLMOPT_PUSHFUNCTION |
传递 callable 以注册处理服务器推送且应具有以下签名:
pushfunction(resource
$parent_ch , resource $pushed_ch , array $headers ): int
CURL_PUSH_OK ,或者返回 CURL_PUSH_DENY 拒绝。
|
成功时返回 true
, 或者在失败时返回 false
。
版本 | 说明 |
---|---|
8.2.0 |
引入 CURLMOPT_MAX_CONCURRENT_STREAMS 。
|
8.0.0 |
multi_handle expects a CurlMultiHandle
instance now; previously, a resource was expected.
|
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);
?>