大佬教程收集整理的这篇文章主要介绍了PHP实现基于Swoole简单的HTTP服务器,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
引用Swoole官方定义:
使用swoole_server API,构建http服务器,4个步骤:
<?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响应报文的组成结构,如下图
知道了响应报文的组成结构,那我的响应报文应该是这样的:
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服务器代码就变得更加简单了!
<?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架构师教程目录大全,只要你能看完保证薪资上升一个台阶(持续更新)
以上内容希望帮助到大家,很多PHPer在进阶的时候总会遇到一些问题和瓶颈,业务代码写多了没有方向感,不知道该从那里入手去提升,对此我整理了一些资料,包括但不限于:分布式架构、高可扩展、高性能、高并发、服务器性能调优、TP6,laravel,YII2,redis,Swoole、Swoft、Kafka、MysqL优化、sHell脚本、Docker、微服务、Nginx等多个知识点高级进阶干货需要的可以免费分享给大家,需要的可以加入我的 PHP技术交流群
以上是大佬教程为你收集整理的PHP实现基于Swoole简单的HTTP服务器全部内容,希望文章能够帮你解决PHP实现基于Swoole简单的HTTP服务器所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。