• Http\Server
    • 同步模式
    • 异步模式

    Http\Server

    Http\Server继承自Server,是一个的Http服务器实现。Http\Server支持同步和异步2种模式。

    Http/WebSocket服务器都是继承自Server,所以Server提供的API,如task/finish/tick等都可以使用

    无论是同步模式还是异步模式,Http\Server都可以维持大量TCP客户端连接。同步/异步仅仅体现在对请求的处理方式上。

    示例:

    1. use Swoole\Http\Server;
    2. $http = new Server("127.0.0.1", 9501);
    3. $http->on('request', function ($request, $response) {
    4. $response->end("<h1>Hello Swoole. #".rand(1000, 9999)."</h1>");
    5. });
    6. $http->start();

    同步模式

    这种模式等同于nginx+php-fpm/apache,它需要设置大量Worker进程来完成并发请求处理。Worker进程内可以使用同步阻塞IO,编程方式与普通PHP Web程序完全一致。

    php-fpm/apache不同的是,客户端连接并不会独占进程,服务器依然可以应对大量并发连接。

    异步模式

    这种模式下整个服务器是异步非阻塞的,服务器可以应对大规模的并发连接和并发请求。但编程方式需要完全使用异步API,如MySQLredishttp_clientfile_get_contentssleep等阻塞IO操作必须切换为异步的方式,如异步ClientEventTimerAPI