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

webman http-client用法

sanergo

假設(shè)webman只能開一個(gè)進(jìn)程
假設(shè)https://example.com的響應(yīng)時(shí)間是1-10秒,可能根據(jù)傳入的參數(shù)不同,響應(yīng)時(shí)間也不同

public function test(Request $request) {
    $http = new Workerman\Http\Client();

    // 同步請求
    $response = $http->get('https://example.com/');
    // 同步請求是假設(shè)每次的響應(yīng)時(shí)間都是10秒,那么處理的效率就只能依賴前一個(gè)請求的響應(yīng),依次處理
    return $response->getBody();
}

public function testAsync(Request $request) {
    $http = new Workerman\Http\Client();
    $connection = $request->connection;

    // 異步請求
    $http->get('https://example.com/', function ($response) use ($connection) {
        //$connection->send(new Chunk($response->getBody()));
        //$connection->send(new Chunk('')); // 發(fā)送空的的chunk代表response結(jié)束
    });

    //return response()->withHeaders(["Transfer-Encoding" => "chunked",]);
    //不太確定這里是立即返回還是保存的上下文信息以等待處理完成,看上面的return代碼應(yīng)該是立即返回
    // 如果是立即返回了,但是請求端希望拿到具體的響應(yīng)結(jié)果,且不需要做額外的處理,就按正常的同步請求處理
}

請問testAsync應(yīng)該怎么處理可以達(dá)到增加并發(fā),而且不需要調(diào)用端額外處理?
或者只能根據(jù)header設(shè)置的參數(shù)來額外處理

1084 1 2
1個(gè)回答

walkor 打賞

testAsync方法里
return response()->withHeaders(["Transfer-Encoding" => "chunked",]);
這個(gè)只是返回一個(gè)http頭,包體部分是$connection->send()異步返回的。這種寫法可以提高并發(fā)

  • sanergo 2024-09-19

    謝謝 知道了,但是調(diào)用方還是需要額外處理Transfer-Encoding才行了

??