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 SwooleServer("127.0.0.1", 9501);
//设置服务器参数
$serv->set(array(
worker_num => 8, //工作进程数量
daemonize => true, //是否作为守护进程
));
//设置事件回调函数
$serv->on(connect, function ($serv, $fd) {
echo "Client:Connect.
";
});
$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.
";
});
//启动服务器
$serv->start();
作者:唐伯虎点蚊香,如若转载,请注明出处:https://www.web176.com/swoole/17106.html