Есть ли способ посылать обновления из PHP для прошивки в середине запроса? - PullRequest
0 голосов
/ 20 апреля 2011

У меня есть PHP-процесс, который выполняет кучу всего, и я хочу отправить отзыв клиенту Flash, который его вызывает, во время обработки запроса.Однако, так как я слушаю событие COMPLETED, я не получаю обратную связь до тех пор, пока PHP не завершит выполнение (в это время все буферизованные сообщения приходят сразу).

Я попытался использовать событие PROGRESS, ноэто, кажется, не работает (если я не использую это правильно).

Есть ли что-то на стороне PHP, что я могу пропустить?Или Flash просто не предназначен для получения обновлений с сервера в обычном URLRequest ... Я могу использовать сокет для этого, но я бы не стал этого делать!

Ответы [ 3 ]

2 голосов
/ 20 апреля 2011

Вы пытались использовать событие PROGRESS при использовании функции PHP flush () для периодической отправки вывода, а не после завершения выполнения сценария PHP.

2 голосов
/ 20 апреля 2011

Зависит от того, что вы просите PHP сделать на бэкенде.Если вы отправляете данные в формате json или xml, вы всегда можете вызвать flush для более частой отправки текущего буфера вывода клиенту.

1 голос
/ 11 сентября 2011

Это можно сделать. Ключ flash.net.URLStream . Я использую это таким образом (код не полный, но я думаю, что вы получите картину):

var stream:URLStream = new URLStream();
var request:URLRequest = new URLRequest("yourUnbufferedPHPURLhere?rand="+Math.random());
stream.addEventListener(ProgressEvent.PROGRESS, progressHandler);
stream.load(request);
function progressHandler(event:Event):void{
    trace("PROGRESS: "+stream.readUTFBytes(stream.bytesAvailable));
}
...