协程客户端超时规则

最后更新于:2022-04-02 06:29:59

# 协程客户端超时规则 [TOC] > 在Swoole版本>=4.2.10生效 为了统一各个客户端混乱的超时规则, 避免开发者需要处处谨慎设置, 从4.2.10版本开始所有协程客户端统一超时规则如下: ## 全局Socket超时配置项 以下配置项可通过`Co::set`方法配置, 如 ~~~ Co::set([ 'socket_connect_timeout' => 1, 'socket_timeout' => 5 ]); ~~~ * `socket_connect_timeout`, 建立socket连接超时时间,**默认为`1`(秒)** * `socket_timeout`, socket读写操作超时时间,**默认为`-1`, 即永不超时** **即: 所有协程客户端默认连接超时时间为1s, 其他读写操作若未指定超时时间则永不超时** ## 超时时间设置规则 * `-1`: 永不超时 * `0`: 不更改超时时间 * `其它大于0的值`: 设置相应秒数的超时定时器, 最大精度为1毫秒 ## 生效范围 * Co::set => 全局 * 通过set等方法设置的 => 被设置的客户端 * 读写方法的函数传参 => 方法调用的读写操作 ## 注意 文档中旧有的, 与此有出入的超时时间设定规则, 皆以此规则为准 ## PHP官方网络库超时 在Swoole中很多PHP官方提供的网络库API也可以协程化变成异步非阻塞IO, 它们的超时时间受[`default_socket_timeout`](http://php.net/manual/zh/filesystem.configuration.php)配置影响, 开发者可以通过`ini_set('default_socket_timeout', 60)`这样来单独设置它, 它的默认值是60.
';