摘要:使开发人员可以编写高性能的异步并发,服务。使用作为网络通信框架,可以使企业研发团队的效率大大提升,更加专注于开发创新产品。总之,这个库让可以常驻内存,并提供了,等功能。
swoole
使 PHP 开发人员可以编写高性能的异步并发 TCP、UDP、Unix Socket、HTTP,WebSocket 服务。Swoole 可以广泛应用于互联网、移动通信、企业软件、云计算、网络游戏、物联网(IOT)、车联网、智能家居等领域。 使用 PHP + Swoole 作为网络通信框架,可以使企业 IT 研发团队的效率大大提升,更加专注于开发创新产品。
总之,这个库让PHP可以常驻内存,并提供了http server,tcp server等功能。
docker-compose.xml利用docker,快速生成带swoole扩展的PHP环境,php-cli
这个镜像,默认运行的是目录下public目录中server.php文件
version: "2" services: php: image: salamandermh/php-cli:1.0 volumes: - ./src:/var/www - ./php/php.ini:/usr/local/etc/php/php.ini ports: - 8888:8888路由分发
因为swoole提供了http server的功能,所以swoole会告诉我们当前$uri,$http_method这些量,所哟路由库继续可以用来分发$uri,这里选用了FastRoute,当然,别的库肯定也是可以的。
server.phpaddRoute("GET", "/", $prefix . "IndexController:show"); }); $http->on("start", function ($server) { echo "Swoole http server is started at http://0.0.0.0:8888 "; }); $http->on("request", function ($request, $response) use($dispatcher) { $response->header("X-Powered-By", "Salamander"); // Fetch method and URI from somewhere $httpMethod = $request->server["request_method"]; $uri = $request->server["request_uri"]; // Strip query string (?foo=bar) and decode URI if (false !== $pos = strpos($uri, "?")) { $uri = substr($uri, 0, $pos); } $uri = rawurldecode($uri); $res = ""; $routeInfo = $dispatcher->dispatch($httpMethod, $uri); switch ($routeInfo[0]) { case FastRouteDispatcher::NOT_FOUND: // ... 404 Not Found break; case FastRouteDispatcher::METHOD_NOT_ALLOWED: $allowedMethods = $routeInfo[1]; // ... 405 Method Not Allowed break; case FastRouteDispatcher::FOUND: $handler = $routeInfo[1]; $vars = $routeInfo[2]; $parts = explode(":", $handler); $controller = new $parts[0]; $method = $parts[1]; $res = call_user_func_array(array($controller, $method), [$vars]); break; } $response->end($res); }); $http->start();
注意一下,$request->server中request_method和request_uri都是小写的key,这和PHP内置写法不一样。
swoole文档
swoole-test
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/28145.html
摘要:使开发人员可以编写高性能的异步并发,服务。使用作为网络通信框架,可以使企业研发团队的效率大大提升,更加专注于开发创新产品。总之,这个库让可以常驻内存,并提供了,等功能。 swoole 使 PHP 开发人员可以编写高性能的异步并发 TCP、UDP、Unix Socket、HTTP,WebSocket 服务。Swoole 可以广泛应用于互联网、移动通信、企业软件、云计算、网络游戏、物联网(...
摘要:总之,是用来管理多个容器的,用都会写一个开启所有服务关闭所有服务上面说了,关键是编排好,以下就是的目录结构访问在目录下运行命令,在浏览器访问可以看到讲解和都是用了官方的镜像,而是从本地构建的。 Docker Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,...
摘要:总之,是用来管理多个容器的,用都会写一个开启所有服务关闭所有服务上面说了,关键是编排好,以下就是的目录结构访问在目录下运行命令,在浏览器访问可以看到讲解和都是用了官方的镜像,而是从本地构建的。 Docker Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,...
摘要:总之,是用来管理多个容器的,用都会写一个开启所有服务关闭所有服务上面说了,关键是编排好,以下就是的目录结构访问在目录下运行命令,在浏览器访问可以看到讲解和都是用了官方的镜像,而是从本地构建的。 Docker Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,...
阅读 2641·2021-11-11 16:55
阅读 680·2021-09-04 16:40
阅读 3076·2019-08-30 15:54
阅读 2615·2019-08-30 15:54
阅读 2402·2019-08-30 15:46
阅读 402·2019-08-30 15:43
阅读 3227·2019-08-30 11:11
阅读 2981·2019-08-28 18:17