假設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設置的參數來額外處理