PHP   发布时间:2022-04-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了PHP实现基于Swoole简单的HTTP服务器大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

引用Swoole官方定义:

在这里简述swoole两种API编写简单http服务器。

swoole_server

使用swoole_server API,构建http服务器,4个步骤:

  1. 构建Server对象
  2. 设置运行时参数
  3. 注册事件回调函数
  4. 启动服务器

直接代码体现,新建server.PHP

<?PHP

//1.构建Server对象
$serv = new swoole_server("0.0.0.0", 9501);

//2.设置运行时参数
$serv->set(array(
    'worker_num' => 8,
    'daemonize' => 0,
    'max_request' => 10000,
    'dispatch_mode' => 2,
    'debug_mode'=> 1,
));

//3.注册事件回调函数
$serv->on('Receive', function($serv, $fd, $from_id, $data){
    $resPDAta='<h1>Hello Swoole.</h1>';
    response($serv,$fd,$resPDAta);//封装并发送http响应报文
});

//4.启动服务器
$serv->start();


如何封装http响应报文?首先你得知道http响应报文的组成结构,如下图

PHP实现基于Swoole简单的HTTP服务器

知道了响应报文的组成结构,那我的响应报文应该是这样的

http/1.1 200
Server:SwooleServer
Content-Type:text/html;charset=utf8
Content-Length:13

<h1>Hello Swoole.</h1>

代码实现。


/**
* 发送内容
* @param \swoole_server $serv
* @param int $fd
* @param String $resPDAta
* @return void
*/
function response($serv,$fd,$resPDAta){
    //响应行
    $response = array(
        'http/1.1 200',
    );
    //响应头
    $headers = array(
        'Server'=>'SwooleServer',
        'Content-Type'=>'text/html;charset=utf8',
        'Content-Length'=>strlen($resPDAta),
    );
    foreach($headers as $key=>$val){
        $response[] = $key.':'.$val;
    }
    //空行
    $response[] = '';
    //响应体
    $response[] = $resPDAta;
    $send_data = join("\r\n",$responsE);
    $serv->send($fd, $send_data);
}

到此,一个简单响应Hello Swoole.http服务器就完成了。完整代码这里
访问不了gist?配置本地hosts文件: 192.30.252.141 gist.github.com )

运行PHP server.PHP,浏览器访问http://127.0.0.1:9501/,当然我们常常使用Nginx作为前端代理,设一个测试域名www.server.com,本地设置hosts映射,就能通过域名来访问了。Nginx配置:这里
注意:当响应报文格式不正确时,浏览器页面会一直转菊花,等待请求返回...

再后来,有了swoole_http_server,http服务器代码就变得更加简单了!

swoole_http_server

<?PHP

$http = new swoole_http_server("127.0.0.1", 9501);
$http->on('request', function ($request, $responsE) {
    $html = "<h1>Hello Swoole.</h1>";
    $response->end($html);
});

没错,就这几行代码就实现了。不再需要封装响应报文。swoole_http_server 继承于 swoole_server,是swoole内置http服务器的支持,通过几行代码即可写出一个异步非阻塞多进程的http服务器。

Notice:swoole_http_server对http协议的支持并不完整,建议仅作为应用服务器。并且在前端增加Nginx作为代理

点关注,不迷路

好了各位,以上就是这篇文章的全部内容了,能看到这里的人呀,都是人才。之前说过,PHP方面的技术点很多,也是因为太多了,实在是写不过来,写过来了大家也不会看的太多,所以我这里把它整理成了PDF和文档,如果有需要的可以

点击进入暗号: PHP+「平台」

PHP实现基于Swoole简单的HTTP服务器

PHP实现基于Swoole简单的HTTP服务器


更多学习内容可以访问【对标大厂】精品PHP架构师教程目录大全,只要你能看完保证薪资上升一个台阶(持续更新)

以上内容希望帮助到大家,很多PHPer在进阶的时候总会遇到一些问题和瓶颈,业务代码写多了没有方向感,不知道该从那里入手去提升,对此我整理了一些资料,包括但不限于:分布式架构、高可扩展、高性能、高并发、服务器性能调优、TP6,laravel,YII2,redis,Swoole、Swoft、Kafka、MysqL优化、sHell脚本、Docker、微服务、Nginx等多个知识点高级进阶干货需要的可以免分享给大家,需要的可以加入我的 PHP技术交流群

大佬总结

以上是大佬教程为你收集整理的PHP实现基于Swoole简单的HTTP服务器全部内容,希望文章能够帮你解决PHP实现基于Swoole简单的HTTP服务器所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: