2016-03-04 81 views
3

我正在嘗試連接到保持連接處於活動狀態併發送分塊數據的API。用於HTTP保持活動的PHP Guzzle客戶端

我有一個解決方案,使用fsockopen寫入和讀取流,並使用while(!$stream->eof())

我想知道我是否可以使用Guzzle來獲得相同的結果嗎?

我看到了異步方法,但可以告訴我如何等待流?

回答

1

Guzzle 6+支持PRS-7,它將響應主體定義爲流。您可以同步或異步請求數據,這並不重要。

而且它來設置stream option您的要求是很重要的:

$client = new Client(/* ... */); 

$response = $client->get('http://some.url/', ['stream' => true]); 
$bodyStream = $response->getBody(); 

while (!$bodyStream->eof()) { 
    echo $bodyStream->read(1024); 
}