多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# swoole\_client::\_\_construct [TOC] 函数原型: ~~~ swoole_client->__construct(int $sock_type, int $is_sync = SWOOLE_SOCK_SYNC, string $key); ~~~ 可以使用swoole提供的宏来之指定类型,请参考[swoole常量定义](预定义常量.md) * `$sock_type`表示`socket`的类型,如`TCP/UDP` * 使用`$sock_type | SWOOLE_SSL`可以启用`SSL`加密 * `$is_sync`表示同步阻塞还是异步非阻塞,默认为同步阻塞 * `$key`用于长连接的`Key`,默认使用IP:PORT作为key。相同key的连接会被复用 ## 在php-fpm/apache中创建长连接 ~~~ $cli = new swoole_client(SWOOLE_TCP | SWOOLE_KEEP); ~~~ 加入SWOOLE\_KEEP标志后,创建的TCP连接在PHP请求结束或者调用$cli->close时并不会关闭。下一次执行connect调用时会复用上一次创建的连接。长连接保存的方式默认是以ServerHost:ServerPort为key的。可以再第3个参数内指定key。 * `SWOOLE_KEEP`只允许用于同步客户端 > swoole\_client在unset时会自动调用close方法关闭socket > 异步模式unset时会自动关闭socket并从epoll事件轮询中移除 > SWOOLE\_KEEP长连接模式在1.6.12后可用,长连接的$key参数在1.7.5后增加 ## 在swoole\_server中使用swoole\_client * 必须在事件回调函数中使用swoole\_client,不能在`swoole_server->start`前创建 * swoole\_server可以用任何语言编写的 socket client来连接。同样swoole\_client也可以去连接任何语言编写的socket server