配置选项

Swoole\ClientSwoole\Http\Client可以使用set方法设置一些选项,启用某些特性。

结束符检测

$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和端口

$client->set(array(
	'bind_address'     =>  '192.168.1.100',
	'bind_port'     =>  36002,
));

swoole-1.8.5或更高版本可用

Socks5代理设置

$client->set(array(
	'socks5_host'     =>  '192.168.1.100',
	'socks5_port'     =>  1080,
	'socks5_username' => 'username',
	'socks5_password' => 'password',
));

Http代理设置

$client->set(array(
	'http_proxy_host'     =>  '192.168.1.100',
	'http_proxy_port'     =>  1080,
));

使用说明