io storco sempre il naso quando si parla di web service bidirezionale...
(per sua natura non può esservi comunicazione bidirezionale dato il protocollo impiegato)
scrivi un codice da richiamare, come iframe/img/o altro, all'interno del codice della pagina richiamata dall'utente. forse si può fare meglio ma bisogna provare:
<?php
ob_end_clean();
header("Connection: close");
ob_start();
echo 'eventuale output per il client';
$size = ob_get_length();
header("Content-Length: $size");
ob_end_flush();
flush();
/***********************/
/***********************/
// qui prosegue il processo di interrogazione del WS remoto.
// metti un flag da qualche parte (sessione/DB) a lavoro finito
?>
qui inserisci il codice di lettura del WS. la pagina terminerà subito, ma il codice continuerà l'esecuzione. salva i risultati e settati un flag da qualche parte.
quando l'utente naviga controlla il flag di cui sopra e, nel caso, avvisalo che il lavoro è pronto.
ciao,
marco