Swoole---Http(协程风格)
完全协程化的 HTTP 服务器实现,Co\Http\Server 继承自 Co\Server。
与 Http\Server 的不同之处:
可以在运行时动态地创建、销毁
对连接的处理是在单独的子协程中完成,客户端连接的 Connect、Request、Response、Close 是完全串行的
Co\run(function () {$server = new Co\Http\Server("0.0.0.0", 8811);//监听全网段地址、端口$server->set(['enable_static_handler' => true,'document_root' => "/usr/local/var/www/swoole_mooc/data",]);$server->handle('/', function ($request, $response) {if ($request->server['request_uri'] == "/favicon.ico"){$response->end("not data");}//这里是谷歌浏览器默认多一次请求,根据需求排除多余请求$response->end("ceshi");//打印});//覆盖父类的 handle 方法,处理 HTTP 请求。$server->handle('/test', function ($request, $response) {$response->end("<test");});$server->handle('/stop', function ($request, $response) use ($server) {$response->end("stop");$server->shutdown();});$server->start();
});
浏览器结果,根据请求的参数可以划分模块,控制器和方法,构建一个mvc小框架。
注意:服务端出现了一个warning,待解决更新…
Warning: Swoole\Http\Response::end(): http response is unavailable (maybe it has been ended or detached) in /usr/local/var/www/swoole_mooc/demo/swoole4.x/coroutine/http-server.php on line 15
Swoole---Http(协程风格)相关推荐
- Go的协程与Swoole的协程的区别:环境支持 线程
Go语言层面支持协程,不需要声明协程环境.Swoole 必须在协程的上下文环境中使用. Go基于多线程的,可以利用多核 CPU,Swoole 的协程是基于单线程的, 无法利用多核CPU
- swoole mysql 协程_Swoole 协程 MySQL 客户端与异步回调 MySQL 客户端的对比
Swoole 协程 MySql 客户端与 异步回调 MySql 客户端的对比 为什么要对比这两种不同模式的客户端? 异步 MySQL 回调客户端是虽然在 Swoole 1.8.6 版本就已经发布了, ...
- swoole mysql 协程_关于协程的优点以及swoole 协程的用法
在上篇文章中php yield关键字以及协程的实现 我们讲到了协程的原理以及运行步骤. 现在我们来继续看下协程的执行顺序. 协程的运行是交叉式运行(串行),只要你发起了一次协程切换,则会立马暂停当前 ...
- swoole mysql 协程_swoole-orm: 基于swoole的mysql协程连接池,简单封装。实现多个协程间共用同一个协程客户端。参考thinkphp-orm...
swoole-orm 基于swoole的mysql协程连接池,简单封装. 实现多个协程间共用同一个协程客户端 感谢完善 [1]:nowbe -> 新增数据返回insert_id 版本 v0.0. ...
- 利用swoole coroutine协程实现redis异步操作
<?php #注意:可能会遇到这样的现象,用swoole协程的方法访问常规方法添加到redis中的数据,可能访问不到(直接返回NULL)!这可能是两者采用了不同的技术标准所致!项目中要统一标准 ...
- Swoft 1.0 正式来袭,首个基于 Swoole 原生协程的框架
历时 1 年多紧锣密鼓的开发,以及愉快而忙碌的春节假期,期间 github star 数从 500 到快破 1k,码云首页推荐,Swoole 作者 Rango 和社区的大力支持,Swoft 1.0 正 ...
- Swoft 2 Beta 发布,基于 Swoole 的云原生协程框架
Swoft 是首个基于 Swoole 原生协程的框架,从开发到发布据今已有2年多. 1.x 发布以来,已有大量的开发人员和企业使用,得到了大家的认可.从去年11月份开始,将近半年的时间从零开始,底层吸 ...
- php swoole hyperf,【php】Hyperf为什么要关闭Swoole协程短名称
在Hyperf官方文档的服务器要求中提到 并且,在文档的常见问题中也会看到Swoole 短名未关闭这一个tag. 我想问了,那为什么hyperf一定要关闭掉Swoole的协程短名称呢 首先,我们先看一 ...
- php协程 多线程,【swoole.2.01】多进程,多线程和协程
前言 在体验swoole的协程功能之前,需要先知道多进程,多线程和协程的区别. 多进程 典型的多进程结构就是耳熟能详的master-worker结构.swoole本身也是由master-maneger ...
最新文章
- 零基础自学Python:安装Python、解释器、代码风格等
- Android开发精要3--Android中的Intent机制
- Linux内核中的GPIO系统之(3):pin controller driver代码分析
- 归并排序及C语言实现
- 群晖docker装huginn_应用篇:Docker版Zerotier实现内网穿透
- okhttp上传图片和其他参数_Android中Okhttp3实现上传多张图片同时传递参数_放手_前端开发者...
- 【转】禁用Chrome和Firefox中自动播放的动画GIF
- 关于gcc扩展中的宏定义中用 # 和 ##
- 【前端】第二章 HTML、CSS、JavaScript、DOM和JSON
- signature=fc89d4352b6699754c14ce282ec75426,Broken chiral symmetry on a null plane
- 绵阳创客开发长语音识别平台 1小时语音10分钟转化为文字
- 渠道效果五步优化,让采购的流量物超所值
- SQL中 and or in的用法
- 开发Connext DDS传输插件不用求人,看这一篇就够了
- 28、星历处理任务实现
- JavaScript保留小数位数代码
- 笔记本RTX3060比2060性能高多少 RTX3060和2060笔记本差距多大
- SourceTree的简单使用 - 变基(rebase)
- 快速学完计算机网络,如何让电脑网速变快 5分钟就学会
- 如何实现基于微信小程序的人脸识别