这篇文章将为大家详细讲解有关swoole client的作用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
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来创建一个客户端实例。
原型
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 Socket SWOOLE_TCP6 创建IPv6 TCP Socket SWOOLE_UDP 创建UDP Socket SWOOLE_UDP6 创建IPv6 UDP Socket SWOOLE_SSL 开启SSL加密 SWOOLE_KEEP 开启连接复用
其中SWOOLE_SSL与SWOOLE_KEEP不能单独使用,需要与前四个选项共同作用。
// 创建并开启SSL加密的TCP客户端 $client = new swoole_client(SWOOLE_TCP | SWOOLE_SSL);
关于“swoole client的作用”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。