🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# Http\\Server [TOC] `Http\Server`继承自`Server`,是一个的`Http`服务器实现。`Http\Server`支持同步和异步2种模式。 > `Http/WebSocket`服务器都是继承自`Server`,所以`Server`提供的`API`,如`task/finish/tick`等都可以使用 无论是同步模式还是异步模式,`Http\Server`都可以维持大量`TCP`客户端连接。同步/异步仅仅体现在对请求的处理方式上。 示例: ~~~ use Swoole\Http\Server; $http = new Server("127.0.0.1", 9501); $http->on('request', function ($request, $response) { $response->end("<h1>Hello Swoole. #".rand(1000, 9999)."</h1>"); }); $http->start(); ~~~ ## 同步模式 这种模式等同于`nginx+php-fpm/apache`,它需要设置大量`Worker`进程来完成并发请求处理。`Worker`进程内可以使用同步阻塞`IO`,编程方式与普通`PHP``Web`程序完全一致。 与`php-fpm/apache`不同的是,客户端连接并不会独占进程,服务器依然可以应对大量并发连接。 ## 异步模式 这种模式下整个服务器是异步非阻塞的,服务器可以应对大规模的并发连接和并发请求。但编程方式需要完全使用异步`API`,如`MySQL`、`redis`、`http_client`、`file_get_contents`、`sleep`等阻塞`IO`操作必须切换为异步的方式,如异步`Client`,`Event`,`Timer`等`API`。