Odeslání odpovědi před ukončením skriptu
- Ellesmess
- Člen | 21
Ahoj,
potřebuji odeslat z presenteru odpověď před ukončením běhu skriptu a
jelikož se jedná o Nette, chci se zeptat, jaký je správný postup?
Jsem v klasické akci JSON-RPC presenteru, který vezme požadavek, předá jej
serveru (službě), z ní vypadne JSON odpověď, tuto okamžitě potřebuji
odeslat a dále se pak zabývat odbavením tohoto požadavku.
Díky za odpovědi
- David Matějka
- Moderator | 6445
Mas nekolik moznosti:
pokud pouzivas payload:
$this->payload->foo = "aaa";
$this->sendPayload();
nebo
$this->sendJson(array('foo' => 'bar'));
//coz je zkratka pro
$this->sendResponse(new Nette\Application\Responses\JsonResponse(array('foo' => 'bar')));
timto ukoncis beh presenteru.
Editoval matej21 (26. 8. 2014 12:21)
- Ellesmess
- Člen | 21
Vím, jak ukončit běh presenteru, potřebuji vědět, jak odeslat odpověď A ZÁROVEŇ dále pokračovat ve skriptu (v principu řeknu – na, tady máš číslo ticketu, zeptej se později a pokračuji ve vykonávání long-running tasku). SendResponse vyhazuje AbortException, kterážto je mi k prdu.
- David Matějka
- Moderator | 6445
muzes zkusit vyvorit JsonResponse a poslat ji rucne.
ale bojim se, ze ti to nebude fungovat – script bude porad bezet, tudiz klient to uvidi jako neukonceny pozadavek a bude cekat na odpoved. spis bych to resil tak, ze posles normalne response a zpracovavat to budes nekde vedle – treba pomoci fronty a consumeru