Coroutine\Http\Server
完全协程化的Http
服务器实现。与Http\Server
的不同之处:
- 可以在运行时动态地创建、销毁
- 对连接的处理是在单独的子协程中完成,客户端连接的
Connect
、Request
、Response
、Close
是完全串行的
需要
4.4
或更高版本若编译时开启了HTTP2, 则默认会启用HTTP2协议支持, 无需配置 (注: v4.4.16以下版本HTTP2支持存在已知BUG, 请升级后使用)
短命名
可使用Co\Http\Server
短名。
继承关系
Co\Http\Server
继承自Co\Server
,绝大部分类方法与Co\Server
完全一致,可直接使用,包括:
__construct
构造方法set
start
shutdown
在本章节中只提供差异方法的文档
使用实例
go(function () {
$server = new Co\Http\Server("127.0.0.1", 9502, false);
$server->handle('/', function ($request, $response) {
$response->end("<h1>Index</h1>");
});
$server->handle('/test', function ($request, $response) {
$response->end("<h1>Test</h1>");
});
$server->handle('/stop', function ($request, $response) use ($server) {
$response->end("<h1>Stop</h1>");
$server->shutdown();
});
$server->start();
});