- 配置选项
- 作用范围
- 结束符检测
- 长度检测
- MQTT协议
- Socket缓存区尺寸
- 关闭Nagle合并算法
- SSL/TLS证书
- 绑定IP和端口
- Socks5代理设置
- 使用说明
配置选项
Client可以使用set方法设置一些选项,启用某些特性。
作用范围
Swoole\ClientSwoole\Http\ClientSwoole\Coroutine\ClientSwoole\Coroutine\Http\ClientSwoole\Coroutine\Http2\Client
结束符检测
$client->set(array('open_eof_check' => true,'package_eof' => "\r\n\r\n",'package_max_length' => 1024 * 1024 * 2,))
长度检测
$client->set(array('open_length_check' => 1,'package_length_type' => 'N','package_length_offset' => 0, //第N个字节是包长度的值'package_body_offset' => 4, //第几个字节开始计算长度'package_max_length' => 2000000, //协议最大长度));
MQTT协议
启用MQTT协议解析,onReceive回调将收到完整的MQTT数据包。
$client->set(array('open_mqtt_protocol' => true,));
Socket缓存区尺寸
$client->set(array('socket_buffer_size' => 1024*1024*2, //2M缓存区));
包括socket底层操作系统缓存区、应用层接收数据内存缓存区、应用层发送数据内存缓冲区
关闭Nagle合并算法
$client->set(array('open_tcp_nodelay' => true,));
SSL/TLS证书
$client->set(array('ssl_cert_file' => $your_ssl_cert_file_path,'ssl_key_file' => $your_ssl_key_file_path,));
swoole-1.7.21或更高版本可用
绑定IP和端口
仅设置bind_port是无效的,请同时设置bind_port和bind_address
- 机器有多个网卡的情况下,设置
bind_address参数可以强制客户端Socket绑定某个网络地址。 - 设置
bind_port可以使客户端Socket使用固定的端口连接到外网服务器
$client->set(array('bind_address' => '192.168.1.100','bind_port' => 36002,));
Socks5代理设置
仅设置一个选项是无效的, 每次必须设置host和port
$client->set(array('socks5_host' => '192.168.1.100','socks5_port' => 1080,'socks5_username' => 'username','socks5_password' => 'password',));
socks5_username、socks5_password为可选参数
使用说明
- 目前支持open_length_check和open_eof_check2种自动协议处理功能,参考swoole_server中的配置选项
- 启用了自动协议后,同步阻塞客户端recv方法将不接受长度参数,每次必然返回一个完整的数据包
- 启用了自动协议后,异步非阻塞客户端onReceive每次必然返回一个完整的数据包
