• Server
    • 构建Server对象
    • 设置运行时参数
    • 注册事件回调函数
    • 启动服务器
    • 属性列表
    • 运行流程图
    • 进程/线程结构图

    Server

    创建一个异步服务器程序,支持TCPUDPUnixSocket 3种协议,支持IPv4IPv6,支持SSL/TLS单向双向证书的隧道加密。使用者无需关注底层实现细节,仅需要设置网络事件的回调函数即可。

    请勿在使用Server创建之前调用其他异步IOAPI,否则将会创建失败。可以在Server启动后onWorkerStart回调函数中使用。

    Server只能用于php-cli环境,在其他环境下会抛出致命错误

    构建Server对象

    1. $serv = new Swoole\Server('0.0.0.0', 9501, SWOOLE_BASE, SWOOLE_SOCK_TCP);

    设置运行时参数

    1. $serv->set(array(
    2. 'worker_num' => 4,
    3. 'daemonize' => true,
    4. 'backlog' => 128,
    5. ));

    注册事件回调函数

    1. $serv->on('Connect', 'my_onConnect');
    2. $serv->on('Receive', 'my_onReceive');
    3. $serv->on('Close', 'my_onClose');

    PHP中可以使用4种回调函数的风格

    启动服务器

    1. $serv->start();

    属性列表

    1. $serv->manager_pid; //管理进程的PID,通过向管理进程发送SIGUSR1信号可实现柔性重启
    2. $serv->master_pid; //主进程的PID,通过向主进程发送SIGTERM信号可安全关闭服务器
    3. $serv->connections; //当前服务器的客户端连接,可使用foreach遍历所有连接

    运行流程图

    Swoole扩展架构图

    进程/线程结构图

    Swoole进程/线程结构图进程/线程结构图2