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

webman http-client用法

sanergo

假設webman只能開一個進程
假設https://example.com的響應時間是1-10秒,可能根據傳入的參數不同,響應時間也不同

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

    // 同步請求
    $response = $http->get('https://example.com/');
    // 同步請求是假設每次的響應時間都是10秒,那么處理的效率就只能依賴前一個請求的響應,依次處理
    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結束
    });

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

請問testAsync應該怎么處理可以達到增加并發(fā),而且不需要調用端額外處理?
或者只能根據header設置的參數來額外處理

1100 1 2
1個回答

walkor 打賞

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

  • sanergo 2024-09-19

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

??