Sto lavorando a un'applicazione Web PHP e ho bisogno di eseguire alcune operazioni di rete nella richiesta come prelevare qualcuno dal server remoto in base alla richiesta dell'utente.Chiamata di funzione asincrona in PHP
È possibile simulare il comportamento asincrono in PHP dato che devo passare alcuni dati a una funzione e anche bisogno di un output da esso.
Il mio codice è simile:
<?php
$data1 = processGETandPOST();
$data2 = processGETandPOST();
$data3 = processGETandPOST();
$response1 = makeNetworkCall($data1);
$response2 = makeNetworkCall($data2);
$response3 = makeNetworkCall($data3);
processNetworkResponse($response1);
processNetworkResponse($response2);
processNetworkResponse($response3);
/*HTML and OTHER UI STUFF HERE*/
exit;
?>
Ogni operazione di rete richiede circa 5 secondi per completare l'aggiunta di un totale di 15 secondi per il tempo di risposta della mia data applicazione faccio 3 richieste.
La funzione makeNetworkCall() esegue semplicemente una richiesta POST HTTP.
Il server remoto è un'API di terze parti, quindi non ho alcun controllo lì.
PS: Si prega di non rispondere dando suggerimenti su AJAX o Altre cose. Attualmente sto cercando se posso farlo attraverso PHP potrebbe essere con un'estensione C++ o qualcosa del genere.
Provate ad usare 'curl' al fuoco richieste a prendere alcuni dati dal web ... –
possibile duplicato [filettatura chiamata PHP a una funzione php in modo asincrono] (http://stackoverflow.com/questions/13846192/ php-threading-call-to-a-php-function-asincrono) – CRABOLO
Puoi usare la funzione PHP [stream_select] (https://secure.php.net/manual/en/function.stream-select.php) per eseguire codice non bloccante. [React] (http://reactphp.org/) usa questo per creare un [loop event-driven simile a node.js] (https://speakerdeck.com/igorw/react-phpnw). –