摘要:使開發(fā)人員可以編寫高性能的異步并發(fā),服務(wù)。使用作為網(wǎng)絡(luò)通信框架,可以使企業(yè)研發(fā)團隊的效率大大提升,更加專注于開發(fā)創(chuàng)新產(chǎn)品。總之,這個庫讓可以常駐內(nèi)存,并提供了,等功能。
swoole
使 PHP 開發(fā)人員可以編寫高性能的異步并發(fā) TCP、UDP、Unix Socket、HTTP,WebSocket 服務(wù)。Swoole 可以廣泛應(yīng)用于互聯(lián)網(wǎng)、移動通信、企業(yè)軟件、云計算、網(wǎng)絡(luò)游戲、物聯(lián)網(wǎng)(IOT)、車聯(lián)網(wǎng)、智能家居等領(lǐng)域。 使用 PHP + Swoole 作為網(wǎng)絡(luò)通信框架,可以使企業(yè) IT 研發(fā)團隊的效率大大提升,更加專注于開發(fā)創(chuàng)新產(chǎn)品。
總之,這個庫讓PHP可以常駐內(nèi)存,并提供了http server,tcp server等功能。
docker-compose.xml利用docker,快速生成帶swoole擴展的PHP環(huán)境,php-cli
這個鏡像,默認(rèn)運行的是目錄下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路由分發(fā)
因為swoole提供了http server的功能,所以swoole會告訴我們當(dāng)前$uri,$http_method這些量,所喲路由庫繼續(xù)可以用來分發(fā)$uri,這里選用了FastRoute,當(dāng)然,別的庫肯定也是可以的。
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內(nèi)置寫法不一樣。
swoole文檔
swoole-test
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/39762.html
摘要:使開發(fā)人員可以編寫高性能的異步并發(fā),服務(wù)。使用作為網(wǎng)絡(luò)通信框架,可以使企業(yè)研發(fā)團隊的效率大大提升,更加專注于開發(fā)創(chuàng)新產(chǎn)品。總之,這個庫讓可以常駐內(nèi)存,并提供了,等功能。 swoole 使 PHP 開發(fā)人員可以編寫高性能的異步并發(fā) TCP、UDP、Unix Socket、HTTP,WebSocket 服務(wù)。Swoole 可以廣泛應(yīng)用于互聯(lián)網(wǎng)、移動通信、企業(yè)軟件、云計算、網(wǎng)絡(luò)游戲、物聯(lián)網(wǎng)(...
摘要:總之,是用來管理多個容器的,用都會寫一個開啟所有服務(wù)關(guān)閉所有服務(wù)上面說了,關(guān)鍵是編排好,以下就是的目錄結(jié)構(gòu)訪問在目錄下運行命令,在瀏覽器訪問可以看到講解和都是用了官方的鏡像,而是從本地構(gòu)建的。 Docker Docker 是一個開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個可移植的容器中,然后發(fā)布到任何流行的 Linux機器上,也可以實現(xiàn)虛擬化。容器是完全使用沙箱機制,...
摘要:總之,是用來管理多個容器的,用都會寫一個開啟所有服務(wù)關(guān)閉所有服務(wù)上面說了,關(guān)鍵是編排好,以下就是的目錄結(jié)構(gòu)訪問在目錄下運行命令,在瀏覽器訪問可以看到講解和都是用了官方的鏡像,而是從本地構(gòu)建的。 Docker Docker 是一個開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個可移植的容器中,然后發(fā)布到任何流行的 Linux機器上,也可以實現(xiàn)虛擬化。容器是完全使用沙箱機制,...
摘要:總之,是用來管理多個容器的,用都會寫一個開啟所有服務(wù)關(guān)閉所有服務(wù)上面說了,關(guān)鍵是編排好,以下就是的目錄結(jié)構(gòu)訪問在目錄下運行命令,在瀏覽器訪問可以看到講解和都是用了官方的鏡像,而是從本地構(gòu)建的。 Docker Docker 是一個開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個可移植的容器中,然后發(fā)布到任何流行的 Linux機器上,也可以實現(xiàn)虛擬化。容器是完全使用沙箱機制,...
閱讀 2034·2021-11-11 16:54
閱讀 2111·2019-08-30 15:55
閱讀 3611·2019-08-30 15:54
閱讀 391·2019-08-30 15:44
閱讀 2228·2019-08-30 10:58
閱讀 424·2019-08-26 10:30
閱讀 3048·2019-08-23 14:46
閱讀 3191·2019-08-23 13:46