PHP:关闭SoapClient连接更好吗?



我创建了以下帮助程序函数:

function mainSoap(){
return new SoapClient('https://soap.url',[
'stream_context' => stream_context_create([
'ssl' => [
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
]
]);
]);
}

我像$result=mainSoap()->GetSometing($parameters);一样使用它

一切正常,但就性能而言,我想知道关闭肥皂连接是否更好。

更新

我创建了另一个函数,以便在获得响应后关闭连接,但我仍然找不到 SoapClient 的关闭方法。

function mainSoap(string $call=null, array $vars=[]){
$url="https://soap.url";
$wsdl=new SoapClient($url,[
'trace' => false,
'keep_alive' => false,
'stream_context' => stream_context_create([
'ssl' => [
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
]
]),
'compression'   => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP | SOAP_COMPRESSION_DEFLATE
]);
$response=$wsdl->__soapCall($call,$vars);
//Looking for something like $wsdl->close();
return $response;
}

我像$result=mainSoap('GetSometing',[$parameters]);一样使用它

SoapClient遵循正常的 HTTP 请求生命周期,

也就是说,您的SoapClient不会与服务器保持恒定的连接,它只会在调用时连接并接收数据,类似于您的浏览器在请求完成后不与服务器保持连接,因为请求被终止,除非您将keep_alive设置为 true。

因此,简而言之,您无法"关闭"SoapClient因为调用它后没有什么可关闭的,它已经关闭了连接。

相关链接:

  • 维基百科关于 Http 的文章(持久连接部分(
  • 关于Keep-Alive标头的 MDN 文档

相关内容

  • 没有找到相关文章

最新更新