Coroutine\Http\Client->set

设置客户端参数,此方法与Swoole\Client->set接收的参数完全一致,可参考 Swoole\Client->set 方法的文档。

除了设置Socket的参数之外,Swoole\Coroutine\Http\Client 额外增加了一些选项,来控制HttpWebSocket客户端。

超时控制

设置timeout选项,启用Http请求超时检测。单位为秒,最小粒度支持毫秒。

$http->set(['timeout' => 3.0]);
  • 连接超时或被服务器关闭连接,statusCode将设置为-1
  • 在约定的时间内服务器未返回响应,请求超时,statusCode将设置为-2
  • 请求超时后底层会自动切断连接
  • 设置为-1表示永不超时,底层将不会添加超时检测的定时器

keep_alive

设置keep_alive选项,启用或关闭Http长连接。

$http->set(['keep_alive' => false]);

websocket_mask

由于RFC规定, v4.4.0后此配置默认开启, 但会导致性能损耗, 如服务器端无强制要求可以设置false关闭

WebSocket客户端启用或关闭掩码。默认为关闭。启用后会对WebSocket客户端发送的数据使用掩码进行数据转换。

$http->set(['websocket_mask' => true]);

websocket_compression

需要v4.4.12或更高版本

true允许对帧进行zlib压缩,具体是否能够压缩取决于服务端是否能够处理压缩(根据握手信息决定,参见RFC-7692) 需要配合flags参数SWOOLE_WEBSOCKET_FLAG_COMPRESS来真正地对具体的某个帧进行压缩