Coroutine\Http\Server

完全协程化的Http服务器实现。与Http\Server的不同之处:

  • 可以在运行时动态地创建、销毁
  • 对连接的处理是在单独的子协程中完全,客户端连接的ConnectRequestResponseClose是完全串行的

短命名

可使用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();
});