Guzzle 的传输处理器之一是 CurlMultiHandler,它使用了 PHP 的 curl_multi_* 函数来实现异步传输。 请求会以异步方式启动,函数 curl_multi_select() 使得 Guzzle 可以等待其中一个 curl 请求接收数据并处理它。
Guzzle CurlMultiHander 是一个包装了 PHP 内置的 curl_multi_* 函数的库,这些函数本质上又是对 cURL Multi API 的封装。根据 cURL 文档,要使用多接口,必须首先使用 curl_multi_init 创建“多句柄”。然后,将此句柄作为所有后续 curl_multi_* 函数的输入。通过使用多句柄和多接口,可以并行进行多个传输。每个单独的传输都围绕一个简单的句柄建立。您需要创建所有所需的简单句柄,并使用 curl_easy_setopt 设置每个简单句柄的适当选项。