用戶在我的網站上註冊後,我需要發送一個不妨礙用戶的方法中的soap請求。如果肥皂服務器運行緩慢,我不希望最終用戶不得不等待它。有沒有一種方法可以發送請求,並讓我的主PHP應用程序繼續運行而無需等待來自soap服務器的響應?如果沒有,有沒有辦法在肥皂請求上設置最大超時時間,並且在請求大於最大超時時處理功能?PHP非阻塞SOAP請求
編輯: 我理想情況下希望處理這與請求的最大超時。我有以下內容:
//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();
我將超時設置爲0.01來嘗試強制連接超時,但請求似乎仍然關閉。我在這裏做錯了什麼?
PHP不適合允許多個SOAP調用。 –
PHP(與GTK或HTML(5)結合使用)是完全爲此設計的。 – DanFromGermany