课程表

Swoole基础

Swoole实例

工具箱
速查手册

Swoole Server实例

当前位置:免费教程 » 程序设计 » Swoole

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

swoole_server只能用于php-cli环境,否则会抛出致命错误

构建Server对象

  1. $serv = new swoole_server("127.0.0.1", 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进程/线程结构图

简单Swoole tcp server实例:

  1. $serv = new Swoole\Server("127.0.0.1", 9501);
  2. //设置服务器参数
  3. $serv->set(array(
  4. 'worker_num' => 8, //工作进程数量
  5. 'daemonize' => true, //是否作为守护进程
  6. ));
  7. //设置事件回调函数
  8. $serv->on('connect', function ($serv, $fd) {
  9. echo "Client:Connect.\n";
  10. });
  11. $serv->on('receive', function ($serv, $fd, $reactor_id, $data) {
  12. $serv->send($fd, 'Swoole: ' . $data);
  13. $serv->close($fd);
  14. });
  15. $serv->on('close', function ($serv, $fd) {
  16. echo "Client: Close.\n";
  17. });
  18. //启动服务器
  19. $serv->start();
转载本站内容时,请务必注明来自W3xue,违者必究。
 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号