不是的,如果启动一个TCP服务器,就会启动了3 个 worker进程,3个task进程,因为启用了task功能,所以必须注册onTask、onFinish 2个事件的回调函数。
Swoole4322019-12-16 11:59:4101094
端口可以认为是设备与外界通讯交流的出口。端口可分为虚拟端口和物理端口,其中虚拟端口指计算机内部或交换机路由器内的端口,不可见。Swoole-1.8.0新增了对多端口混合协议的支持。Server可以监听多个端口。
Swoole5442019-12-16 11:51:3201436
swoole版本的区别:Swoole 2.0最大的更新是增加了对协程(Coroutine)的支持。Swoole 3.0版本中,我们实现了一个全新的PHP内置协程调度器,基于ZendVM的EG(vm_interrupt) 机制实现。
Swoole112019-12-16 11:39:2101918
Swoole在1.8.6版本提供了全新的异步MySQL客户端,底层自行实现了MySQL的通信协议,无需依赖其他第三方库,直接使用swoole_mysql->__construct命令,创建异步mysql客户端。
Swoole7542019-12-16 11:23:2701345
从4.0版本开始Swoole提供了完整的协程(Coroutine)+通道(Channel)特性,带来全新的CSP编程模型。Swoole提供了异步任务处理的功能,可以投递一个异步任务到TaskWorker进程池中执行,不影响当前请求的处理速度
Swoole5822019-12-16 11:05:4204548
swoole使用纯C编写,不依赖其他第三方库;swoole并没有用libevent,所以不需要安装libevent;swoole并不依赖php的stream/sockets/pcntl/posix/sysvmsg等扩展。
Swoole1212019-12-16 10:57:0001840
swoole 1.7.9增加了内置的WebSocket服务器支持,如使用此命令:$server = new Swoole\WebSocket\Server("0.0.0.0", 9501);。
Swoole3212019-12-16 10:22:4301609
swoole的UDP服务器与TCP服务器不同,UDP没有连接的概念。Http服务器只需要关注请求响应即可,所以只需要监听一个onRequest事件。WebSocket服务器是建立在Http服务器之上的长连接服务器。
Swoole562019-12-16 10:05:0001475
make或make install无法执行或编译错误、php版本和编译时使用的phpize和php-config不对应、缺少mysql头文件、缺少pcre.h头文件、make install失败。
Swoole4082019-12-16 09:55:0001372
swoole在协程编程中可直接使用try/catch处理异常。但必须在协程内捕获,不得跨协程捕获异常。不仅是应用层throw的Exception,底层的一些错误也是可以被捕获的。
Swoole7632019-12-16 09:47:1101254
在PHP中可以通过register_shutdown_function+error_get_last 2个函数来捕获致命错误,并将错误信息发送给客户端连接。
Swoole1962019-12-16 09:35:120986
swoole进程关闭后可以使用Server->reload方法重启。Swoole提供了柔性终止/重启的机制,管理员只需要向Server发送特定的信号,Server的Worker进程可以安全的结束或重启。
Swoole6762019-12-16 09:32:4301581
swoole worker有事件轮询,swoole_server线程模式就是多线程Worker模式,Reactor线程来处理网络事件轮询,读取数据。访问共享内存时会有同步问题,需要使用Swoole提供的锁机制来保护数据。
Swoole4692019-12-16 09:28:0801346
swoole task会阻塞,task操作的次数必须小于onTask处理速度,如果投递容量超过处理能力,task会塞满缓存区,导致worker进程发生阻塞。
Swoole8032019-12-16 09:18:3101557
swoole完美支持PHP语言,使用纯C语言编写,提供了PHP语言的异步多线程服务器。于是Swoole使用搭建了一个异步服务器,提供异步响应,推送,定时任务等一系列工作是常见的选择。
Swoole9472019-12-16 09:08:1502066