php常用socket创建tcp连接,使用curl创建http连接,为了简化操作,swoole提供了client类用于实现客户端功能,并增加了异步非阻塞模式,让用户在客户端也能使用事件循环。

作为客户端使用,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来创建一个客户端实例。

原型

 

 

参数

参数1:int $sock_type

$sock_type 表示socket类型,可使用swoole提供的宏来指定类型。

 

 其中swoole_ssl与swoole_keep不能单独使用,需要与前四个选项共同作用。

以上就是本篇文章全部内容,感谢阅读

 

 php进阶、面试;文档、视频资源免费获取