php常用socket创建tcp连接,使用curl创建http连接,为了简化操作,swoole提供了client类用于实现客户端功能,并增加了异步非阻塞模式,让用户在客户端也能使用事件循环。 (推荐学习: swoole视频教程)
作为客户端使用,swoole client可以在fpm环境下或 apache中使用,但不允许使用async异步模式,只能使用同步非阻塞模式,异步非阻塞模式仅限cli模式下使用。
client提供了tcp/udp socket的客户端的封装代码,使用时仅需new swoole\client。
swoole的socket客户端对比php提供的stream族函数有什么优势呢?
stream函数存在超时设置的陷阱和bug,一旦没有处理好将会导致服务器长时间阻塞。
stream和fread有8192长度限制,无法支持udp大包。
swoole_client客户端支持waitall,在知道包长度的情况下可以一次取完不必循环获取。
swoole_client支持udp的connect解决了udp串包的问题
swoole_client是纯c的代码
swoole_client支持异步非阻塞回调
构造方法 constructor
swoole的client功能封装为一个swoole_client类,可通过new swoole_client来创建一个客户端实例。
原型
swoole_client->__construct( int $sock_type, int $is_async = swoolel_sock_sync, string $key);
参数
参数1:int $sock_type
$sock_type 表示socket类型,可使用swoole提供的宏来指定类型。
swoole_tcp 创建tcp socketswoole_tcp6 创建ipv6 tcp socketswoole_udp 创建udp socketswoole_udp6 创建ipv6 udp socketswoole_ssl 开启ssl加密swoole_keep 开启连接复用
其中swoole_ssl与swoole_keep不能单独使用,需要与前四个选项共同作用。
// 创建并开启ssl加密的tcp客户端$client = new swoole_client(swoole_tcp | swoole_ssl);
以上就是swoole client有什么用的详细内容。