easyswoole框架生命周期
具体可参考核心代码文件:vendor/easyswoole/easyswoole/src/Core.php
框架生命周期
服务类型
EASYSWOOLE_SERVER (对应Swoole\Server)
EASYSWOOLE_WEB_SERVER (对应Swoole\Http\Server)
EASYSWOOLE_WEB_SOCKET_SERVER (对应Swoole\WebSocket\Server)
easyswoole案例演示
tcp请求:
#在CliExample目录下执行 php TCPClient3.php
服务端回复: 1557998515
服务端回复: your args is:{"name":"\u4ed9\u58eb\u53ef"}
#服务端内容响应:
已连接
tcp服务3 fd:3 发送消息:M{"controller":"Index","action":"index","param":{"name":"\u4ed9\u58eb\u53ef"}}
tcp服务3 fd:3 发送消息:L{"controller":"Index","action":"args","param":{"name":"\u4ed9\u58eb\u53ef"}}
tcp服务3 fd:3 已关闭
服务端通过addListener开启9504端口监听,客户端通过$client->connect('127.0.0.1', 9504, 0.5)发起链接后发送数据。服务端通过\EasySwoole\Socket\Dispatcher->dispatch进行路由解析,并执行具体动作后将数据返回给客户端。
http请求:
#按照demo案例添加App/HttpController/Test.php,并访问以下函数
function index()
{
$this->response()->write('test index');
}
# 访问 http://mytest.easyswoole.com/Test/index
输出:test index
压力测试:
#硬件信息
CPU:1核 Intel(R) Xeon(R) Gold 6148 CPU @ 2.40GHz
内存:1GB
操作系统: Ubuntu / 16.04 LTS amd64 (64bit)
# ab长连接压测swoole页面(ab -c 100 -n 100000 -k http://127.0.0.1:9501/Test/index)返回:
Concurrency Level: 100
Time taken for tests: 18.085 seconds
Complete requests: 100000
Failed requests: