当前位置:K88软件开发文章中心编程语言PHPSwoole → 文章内容

Swoole Server实例

减小字体 增大字体 作者:佚名  来源:网上搜集  发布时间:2019-1-15 15:54:53

由 路飞 创建, 最后一次修改 2016-12-12 Swoole Server介绍创建一个异步服务器程序,支持TCP、UDP、UnixSocket 3种协议,支持IPv4和IPv6,支持SSL/TLS单向双向证书的隧道加密。使用者无需关注底层实现细节,仅需要设置网络事件的回调函数即可。swoole_server只能用于php-cli环境,否则会抛出致命错误构建Server对象$serv = new swoole_server("127.0.0.1", 9501, SWOOLE_BASE, SWOOLE_SOCK_TCP);设置运行时参数$serv->set(array( 'worker_num' => 4, 'daemonize' => true, 'backlog' => 128,));注册事件回调函数$serv->on('Connect', 'my_onConnect');$serv->on('Receive', 'my_onReceive');$serv->on('Close', 'my_onClose');PHP中可以使用4种回调函数的风格启动服务器$serv->start();属性列表$serv->manager_pid; //管理进程的PID,通过向管理进程发送SIGUSR1信号可实现柔性重启$serv->master_pid; //主进程的PID,通过向主进程发送SIGTERM信号可安全关闭服务器$serv->connections; //当前服务器的客户端连接,可使用foreach遍历所有连接运行流程图进程/线程结构图简单Swoole tcp server实例:$serv = new Swoole\Server("127.0.0.1", 9501);//设置服务器参数$serv->set(array( 'worker_num' => 8, //工作进程数量 'daemonize' => true, //是否作为守护进程));//设置事件回调函数$serv->on('connect', function ($serv, $fd) { echo "Client:Connect.\n";});$serv->on('receive', function ($serv, $fd, $reactor_id, $data) { $serv->send($fd, 'Swoole: ' . $data); $serv->close($fd);});$serv->on('close', function ($serv, $fd) { echo "Client: Close.\n";});//启动服务器$serv->start();

Swoole Server实例