swoole学习之: 运行第一个http服务

本文介绍了如何在CentOS虚拟机上利用Swoole创建一个HTTP服务,将端口81映射到本地40181,并展示如何通过http.php文件启动和检查服务状态。同时,讲解了通过$request->server['request_uri']实现简单的URL路由,以及如何获取并输出GET参数。最后,展示了修改代码以输出GET参数并讨论了终止服务的方法。
摘要由CSDN通过智能技术生成

接续我们前面设置的centos虚拟机, ip: 10.0.2.7, 把端口81映射到本机的40181

实现一个http服务

我们写一个http.php文件:

$http = new Swoole\Http\Server('10.0.2.7', 81);//外部访问: http://127.0.0.1:40181

$http->on('start', function ($server) {
    echo "Swoole http server is started at http://10.0.2.7:81".PHP_EOL;
});

$http->on('request', function ($request, $response) {
    $response->header('Content-Type', 'text/plain');
    $response->end('Hello World, '.date('Y-m-d H:i:s').PHP_EOL);
});

$http->start();

上面启动了一个http服务, 监听81端口. 我们可以使用虚拟机10.0.2.7这个ip, 也可以使用0.0.0.0. 如果是桥接网卡, 那么可以使用任意一个ip地址.

然后执行: php http.php 启动服务

使用netstat -an | grep 81检查下81端口监听情况:

查看下php程序的执行状况 ps -ef | grep php:

注意图中有5个进程, 如果我们需要终止swoole服务, 可以ctrl+c, 或者kill pid(只要kill最上面那个2483即可)

那好, 我们现在来访问一下 http://127.0.0.1:40181

Nailed it!

数据输出

我们现在来修改一下代码, 输出get参数;

$http->on('request', function ($request, $response) {
    $response->header('Content-Type', 'text/plain');
    $response->write(json_encode($request->get).PHP_EOL);
    $response->write('Hello World, '.date('Y-m-d H:i:s').PHP_EOL);
});

URL 路由

按官方教程内容, 还可以根据 $request->server['request_uri'] 实现路由。如:http://127.0.0.1:9501/test/index/?a=1,代码中可以这样实现 URL 路由。

$http->on('Request', function ($request, $response) {
    list($controller, $action) = explode('/', trim($request->server['request_uri'], '/'));
    //根据 $controller, $action 映射到不同的控制器类和方法
    (new $controller)->$action($request, $response);
});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值