После того, как пользователь подписывает мой веб -сайт, мне нужно отправить запрос SOAP методом, который не блокирует пользователю. Если сервер SOAP работает медленно, я не хочу, чтобы конечный пользователь должен был ждать его. Есть ли способ отправить запрос и позволить моему основному приложению PHP продолжать работать, не ожидая ответа с SOAP Server? Если нет, есть ли способ установить максимальный тайм -аут на запрос SOAP и обрабатывать функциональность, если запрос больше максимального тайм -аута? У меня есть следующее: < /p>
//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();
< /code>
Я установил тайм -аут на 0,01, чтобы попытаться подключить соединение к тайм -ауту, но запрос все еще, кажется, отключается. Что я здесь делаю?
Подробнее здесь: https://stackoverflow.com/questions/190 ... ap-request