Coroutine\Http\Server

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

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

需要4.4或更高版本

短命名

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


  • 起个网名真难

    $server = new Co\Http\Server("127.0.0.1", 9502, false); $server->set([ 'document_root' => '/data/wwwroot/thinkphp/public/', // 配置静态文件根目录 'enable_static_handler' => true ]); ... 不能配置静态目录么?