Lorsqu'un utilisateur s'inscrit sur mon site Web, je dois envoyer une demande de savon dans une méthode qui ne bloque pas l'utilisateur. Si le serveur de savon fonctionne lentement, je ne veux pas que l'utilisateur final doive attendre. Y at-il un moyen que je puisse envoyer la demande et laisser mon application PHP principale continuer à fonctionner sans attendre une réponse du serveur de savon? Si ce n'est pas le cas, existe-t-il un moyen de définir un délai maximal sur la demande de savon et de gérer les fonctionnalités si la demande est supérieure à un délai d'expiration maximal?Demande de savon non bloquante PHP
Editer: Je voudrais idéalement gérer cela avec un délai d'expiration maximum pour la demande. Je donne les résultats suivants:
//ini_set('default_socket_timeout', 1);
$streamOptions = array(
'http'=>array(
'timeout'=>0.01
)
);
$streamContext = stream_context_create($streamOptions);
$wsdl = 'file://' . dirname(__FILE__) . '/Service.wsdl';
try{
if (file_get_contents($wsdl)) {
$this->_soapClient = new SoapClient($wsdl,
array(
'soap_version' => SOAP_1_2,
'trace' => true,
'stream_context' => $streamContext
)
);
$auth = array('UserName' => $this->_username, 'Password' => $this->_password);
$header = new SoapHeader(self::WEB_SERVICE_URL, "WSUser", $auth);
$this->_soapClient->__setSoapHeaders(array($header));
}//if
}
catch(Exception $e){
echo "we couldnt connect". $e;
}
$this->_soapClient->GetUser();
je définir le délai à 0,01 pour essayer de forcer la connexion à délai d'attente, mais la demande semble encore tirer au large. Qu'est-ce que je fais mal ici?
php n'a pas été conçu pour cela. –
PHP (en combinaison avec GTK, ou HTML (5)) est exactement conçu et prêt pour cela. – DanFromGermany