Jestem odpowiedzialny za część zapleczową API napisaną w PHP, która jest używana głównie przez klienta Flash. To, co dzieje się teraz, to: klient Flash wykonuje wywołanie, backend ładuje niezbędne dane, wykonuje niezbędne przetwarzanie i przetwarzanie końcowe, rejestrowanie i buforowanie, a następnie zwraca wynik do klienta.PHP + gzip: zamknij połączenie i kontynuuj wykonywanie
To, co chciałbym mieć, to zwrócić dane do klienta tak szybko, jak to możliwe, zamknąć połączenie, a następnie wykonać wszystkie czynności, na które klient nie musi się martwić. Może to sprawić, że interfejs API będzie wyglądał znacznie lepiej. Następujące propozycje tutaj:
http://php.net/manual/en/features.connection-handling.php
faktycznie działa, oprócz tego, że muszę wyłączyć kodowanie gzip w celu uczynienia go pracy, co nie jest bardzo praktyczny. Używamy mod_deflate w apache, więc rozwiązanie, które współdziała z tym byłoby idealne, ale rozważałoby również inną metodę gzip naszej zawartości, jeśli jest to konieczne.
Wydaje się, że wydaje się być, tak jak powinien być sposób, aby Apache wiedział "Wysłałem Ci wszystkie dane, które zamierzam wysłać," ale nie mogę znaleźć czegoś takiego.
Dla tych, którzy się zastanawiają, tak, mogę wcześnie wypróżnić wyniki, ale klient Flash nie przetworzy ich, dopóki połączenie nie zostanie zamknięte.
Dzięki. Jestem świadomy kilku obejść tego problemu, niektóre bardziej eleganckie niż inne, ale naprawdę chciałbym znaleźć sposób, aby powiedzieć Apache, aby przestał czekać na wyjście i zamknąć połączenie. :) –