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);

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

UPDATE

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

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,因为在你调用它之后没有什么可以关闭的,它已经关闭了连接.

相关链接

> Wikipedia article on Http (Persistent Connections Section)
> MDN Documentation on Keep-Alive header

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...