______ _____ _
| ____| / ____| | |
| |__ __ _ ___ _ _ | (___ __ __ ___ ___ | | ___
| __| / _` | / __| | | | | \___ \ \ \ /\ / / / _ \ / _ \ | | / _ \
| |____ | (_| | \__ \ | |_| | ____) | \ V V / | (_) | | (_) | | | | __/
|______| \__,_| |___/ \__, | |_____/ \_/\_/ \___/ \___/ |_| \___|
__/ |
|___/
EasySwoole
EasySwoole 是一款基于 Swoole Server 开发的常驻内存型的分布式 PHP 框架,专为 API 而生,摆脱传统 PHP 运行模式在进程唤起和文件加载上带来的性能损失。 EasySwoole 高度封装了 Swoole Server 而依旧维持 Swoole Server 原有特性,支持同时混合监听 HTTP、自定义 TCP、UDP 协议,让开发者以最低的学习成本和精力编写出多进程、可异步、高可用的应用服务。
生产可用
EasySwoole 从最早的前身 EasyPHP-Swoole,到更名为 EasySwoole,再到现如今的 EasySwoole 3.x 版本,多年时间在众多社区小伙伴的共同努力下,EasySwoole 的稳定与可靠已经经历了非常多的大企业检验。
例如:
- 腾讯公司的 IEG 部门
- WEGAME 部门
- 网宿科技(国内 CDN 厂家)
- 360 金融
- 360 小游戏(Actor)
- 9377 小游戏
- 厦门美图网
- 蝉大师
- 宝宝巴士
- 瑞祥科技集团
等公司都在使用 EasySwoole。
特性
- 强大的 TCP/UDP Server 框架,多线程,EventLoop,事件驱动,异步,Worker 进程组,Task 异步任务,毫秒定时器,SSL/TLS 隧道加密
- EventLoop API,让用户可以直接操作底层的事件循环,将 Socket、Stream、管道等 Linux 文件加入到事件循环中
- 定时器、协程对象池、HTTP/SOCKET 控制器、分布式微服务、RPC 支持
优势
- 简单易用开发效率高
- 并发百万 TCP 连接
- TCP/UDP/UnixSocket
- 支持异步/同步/协程
- 支持多进程/多线程
- CPU 亲和性/守护进程
主要能力
HTTP 服务
框架提供控制器、路由、请求与响应对象,以及服务事件等能力,可用于构建网站接口和 REST API。控制器负责处理具体请求;路由负责将 URL 映射到处理逻辑;事件允许在请求进入或服务启动等时机加入应用行为。详见 HTTP 服务。
Socket 服务
依托 Swoole 的网络服务能力,并结合 easyswoole/socket 组件,可以构建 WebSocket、TCP 和 UDP 服务,处理长连接、双向通信或自定义协议。详见 Socket 服务。
后台任务与进程
对于不适合在 HTTP 请求中完成的工作,可以使用异步任务;对于周期性工作,可以使用定时器或 Crontab;需要独立运行的业务逻辑,则可以放入自定义进程。相关用法从 异步任务 开始阅读。
可组合的组件
EasySwoole 的框架核心与独立组件可以按需组合。数据库访问可使用 FastDb,资源复用可使用连接池;客户端、队列、链路追踪等功能也有各自的组件文档。它们并非创建框架项目后全部自动安装,使用时应按照对应章节引入和配置。
适合的应用
EasySwoole 可用于 HTTP API 服务、需要实时推送的 WebSocket 应用、使用 TCP/UDP 自定义协议的服务,以及包含定时任务或后台处理流程的系统。选择具体能力时,可以先实现一个最小的 HTTP 服务,再根据业务需求增加 Socket 服务、持久化和其他组件。
联系作者
- 作者:如果的如果
- 邮箱:admin@fosuss.com
- QQ:291323003
- 微信:扫描下方二维码

从哪里开始
初次使用建议依次阅读环境要求、安装框架和第一个 HTTP 接口。如果希望理解命令解析、事件注册到服务启动的内部过程,可以继续阅读框架设计。
项目源码:EasySwoole 3.x。