WSDL e default_socket_timeout o max_execution_time
Il problema è il seguente:
Si effettua una connessione soap al web service con uno schema di un wsdl, il wsdl in base all'array di variabili in entrata da diverse risposte in base alle operation response Data ed anche alle fault, quindi dato che la chiamata ovviamente avviene tramite Ajax il php risponde ad Ajax in base a come risponde il wsdl quindi sia nel php che nell'Ajax ci sono i prin e gli IF in base alla risposta del wsdl...per esempio il wsdl risponde cliente trovato e ti da i dati, oppure cliente non trovato e ti da la stringa di fault, oppure cliente con sinonimi e ti da i sinonimi etc...etc...Fin qui tutto bene, per farvi capire la struttura, in base alle risposte del wsdl dal php ad ajax viene poi valorizzato tutto l'html di conseguenza...Adesso il punto qual'è? non è detto che il wsdl risponda sempre entro pochi millisencondi, se ci sono dei problemi di qualsiasi genere con il web service di solito PHP mette il default timeout a 30 secondi, adesso io posso accorciare mettendo
Codice PHP:
ini_set("default_socket_timeout", 5);
Ma non va bene, cioè io devo dire al PHP esegui il codice se entro 5 secondi hai una risposta mi deve printare ovviamente la risposta ma se non hai risposta entro 5 secondi mi deve printare per esempio KOTIMEOUT in modo che io poi in Ajax possa gestire e forzare se il wsdl ci mette tempo a rispondere....Come glielo dico come sviluppo il codice?
Ho provato sia mettendo l'if ('max_execution_time', 5) printa KO e non va sia se metto $parti=microtime(true) e poi $fine=microtime(true) e elapsed time e non va....O lo sbaglio a scrivere o non so come impostarlo...Se lo script ci mette più di 5 secondi si deve interrompere e deve entrare in un IF nel PHP che deve rispondere ad Ajax KOTIME...Non posso metterlo nella connessione, perchè la connessione c'è, devo metterlo proprio nel tempo di esecuzione di tutto lo script, cioè nel tempo che il web service ci mette a rispondere...Qualcuno ha qualche idea?