国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

讓workerman支持FastCGI協(xié)議:面向FastCGI-Client

phpcreeper

關(guān)于workerman支持的版本:

根據(jù)老大的Merge情況來看,最小的版本可能是 version >= 4.0.40,協(xié)議實現(xiàn)請參考:
https://github.com/walkor/workerman/pull/784

為什么新增FastCGI協(xié)議支持?

  1. 首先源于問答社區(qū)里一個久遠(yuǎn)的帖子: http://www.wtbis.cn/q/1806
  2. 貼近workerman的應(yīng)用生態(tài),因為原來很多人的項目使用了php-fpm,新增的項目遷移到 workerman或者webman之后,還要保留原來的php-fpm項目, 難免會牽扯到FastCGI協(xié)議,另外他們的考慮就是我不一定非用nginx;
  3. 協(xié)議只照顧了客戶端部分的實現(xiàn),個人認(rèn)為在workerman的生態(tài)圈中面向FastCGI-Server的實現(xiàn)意義不大。
  4. 其他略.....

準(zhǔn)備一個基于PHP-FPM環(huán)境的CGI測試腳本:cgi.php

<?php
var_dump($_POST, $_GET, date('Y-m-d H:i:s'));

重點分享下應(yīng)用層的基本用法:

<?php
use Workerman\Worker;
use Workerman\Protocols\FastCGI\Request;
use Workerman\Connection\AsyncTcpConnection;

require_once dirname(__FILE__, 1) . '/workerman/Autoloader.php';

$worker = new Worker();
$worker->name = "FastCGI-Client";

$worker->onWorkerStart = function($worker){
    //or use UNIX socket 
    $connection = new AsyncTcpConnection("unix:///tmp/fpm.sock");
    $connection->protocol = "\\Workerman\\Protocols\Fcgi";

    //or use TCP socket
    $connection = new AsyncTcpConnection("fcgi://127.0.0.1:9000");

    $connection->onConnect = function($connection){
        $total_request = 100;
        for($i = 0; $i < $total_request; $i++)
        {
            $request = new Request();
            $request->setScript("/path/to/script/cgi.php")
                ->setRequestMethod('post')
                ->setKeepAlive(true) //default is true
                ->setQueryString(['k1' => 'v1']) 
                ->setCustomParams(['k2' => 'v2'])
                ->appendCustomParams(['k3' => 'v3'])
                ->setContent(['number' => $i+1]);
            $connection->send($request);
        }
    };

    //這是暴露給開發(fā)者的一個回調(diào),參數(shù) $response 是響應(yīng)對象
    $connection->onResponse = function($connection, $response){
        var_dump(
            $response->getHeader(), 
            $response->getBody(), 
            $response->getStdout(), 
            $response->getStderr(), 
            $response->formatOutput()
        );  
    };

    $connection->onMessage = function($connection, $data){
        var_dump($data)
        //打印接收到的響應(yīng)數(shù)據(jù) $data 如下所示
        /*Array
(
    [requestId] => 99
    [status] => 200
    [stderr] => 
    [header] => Array
        (
            [X-Powered-By] => PHP/7.4.16
            [Content-type] => text/html; charset=UTF-8
        )

    [body] => 2022-07-15 13:12:04
array(1) {
  ["number"]=>
  string(2) "99"
}
array(1) {
  ["k1"]=>
  string(2) "v1"
}
string(19) "2022-07-15 21:32:04"
)*/
    };

    $connection->onClose = function($connection){
    };

    $connection->connect();
};

Worker::runAll();
2328 4 3
4個評論

liziyu

給你一個大大的贊??

  • 暫無評論
WatcherLuo

  • 暫無評論
小陽光

為什么高級的東西沒得多少人點贊

  • 暫無評論
jieinternet

問下, 這個FastCGI 客戶端, 可以跨項目使用嗎, 處理完請求后, 會釋放所有資源嗎, 就像傳統(tǒng)的php-fpm一樣
還是不會釋放資源, 同一個項目中可以加速
像我的問題這樣
http://www.wtbis.cn/q/11266

  • 暫無評論
年代過于久遠(yuǎn),無法發(fā)表評論

phpcreeper

11966
積分
0
獲贊數(shù)
0
粉絲數(shù)
2015-11-07 加入
??