Swoole:面向生产环境的 PHP 异步网络通信引擎
使 PHP 开发人员可以编写高性能的异步并发 TCP、UDP、Unix Socket、HTTP,WebSocket 服务。
现代化PHP,以swoole为主,swoole支持了协程、多进程开发等,除了web开发还能做应用软件、运维、微服务等(这些是传统PHP不能做的)
Swoole 使用纯 C 语言编写,提供了 PHP 语言的异步多线程服务器,异步 TCP/UDP 网络客户端,异步 MySQL,异步 Redis,数据库连接池,AsyncTask,消息队列,毫秒定时器,异步文件读写,异步DNS查询。 Swoole内置了Http/WebSocket服务器端/客户端、Http2.0服务器端。
最重要的是,完美支持PHP语言。于是使用Swoole搭建了一个异步服务器,提供异步响应,推送,定时任务等一系列工作。
swoole有两个部分:
一个是PHP扩展,用C开发的,这是核心
一个是框架,像yii、TP、Laravel一样,是PHP代码写的。
swoole扩展本身提供了web服务器功能,可以替代php-fpm。
而如果仅仅用swoole框架,可以像其它PHP框架一样,运行在nignx、apache等web服务器中。
swoole扩展是提供了更底层的服务器通信机制,可以使用UDP、TCP等协议,而不仅仅是http。
swoole框架像PHP框架一样,适用于web开发。
安装方式上也不一样,swoole扩展像其它PHP扩展一样安装,可以用pecl,也可以编译安装。
而swoole框架用composer引入之后安装即可,或者下载源码后手动include/require。
另外,swoole框架依赖swoole扩展,是swoole扩展的应用实例。
框架-Swoole扩展-Swoole文档中心
Swoft:基于 Swoole 原生协程的新时代 PHP 全栈式协程框架
easySwoole 高性能HTTP框架
swoole扩展是基础,基于swoole扩展,可以做出多种框架,而不仅仅是web框架。
学习Swoole需要掌握哪些基础知识?
多进程/多线程、socket、IO复用、TCP/IP网络协议、多协议多端口使用、Hprose使用、调试工具、基本框架、HttpServer
1、多进程/多线程
了解Linux操作系统进程和线程的概念
了解Linux进程/线程切换调度的基本知识
了解进程间通信的基本知识,如管道、UnixSocket、消息队列、共享内存
2、SOCKET
了解SOCKET的基本操作如accept/connect、send/recv、close、listen、bind
了解SOCKET的接收缓存区、发送缓存区、阻塞/非阻塞、超时等概念
3、IO复用
了解select/poll/epoll
了解基于select/epoll实现的事件循环,Reactor模型
了解可读事件、可写事件
4、TCP/IP网络协议
了解TCP/IP协议
了解TCP、UDP传输协议
5、调试工具
使用 gdb 调试Linux程序
使用 strace 跟踪进程的系统调用
使用 tcpdump 跟踪网络通信过程
其他Linux系统工具,如ps、lsof、top、vmstat、netstat、sar、ss等