2016-09-02 15 views
2

私は石鹸サーバーと石鹸クライアントを別々のサーバーに持っています。私の問題は、soapサーバーのための私のインターネットリンクが非常に頻繁に羽ばたくので、私は石鹸サーバーのために別のインターネットリンクを取ることを決めているので、プライマリリンクダウン私はリンクをバックアップし、その逆に移動します。しかし、どのように私のphp soapクライアントでこの状態に対処することができますので、毎回手動で変更するのではなく、wsdlのアドレスが自動的に変更されるようにIPが変更されます。 は、例えば私は2つのdiffernetのIPSPHPでWSDLを使用して代替Soap Webサービスを定義する方法

SOAPサーバーでアクティブなインターネットリンクをチェックした後番目のクライアントを定義する方法
<?php 
$url1 = "http://x.x.x.x/api?wsdl"; //primary link IP 
$url2 = "http://a.a.a.a/api?wsdl"; //back up link IP 

$client = new SoapClient($url1 or $url2,array("trace"=>1,"exceptions"=>0)); //Now defining a client with url which is currently active. 

?> 

のためのWSDLリンクの下にありますか?簡単な解決策のために

答えて

0

、あなただけの主なWSDLがアクセスできるかどうかを確認し、それができない場合は、二次WSDLを使用することができます。

$url1 = "http://x.x.x.x/api?wsdl"; 
$url2 = "http://a.a.a.a/api?wsdl"; 

try { 
    $headers = @get_headers($url1); 
    if(!empty($headers)) { 
    $wsdl = $url1; 
    } else { 
    $wsdl = $url2; 
    } 
    $client = new SoapClient($wsdl, array("trace"=>1,"exceptions"=>0)); 
} catch (Exception $e) { 

}