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