Символьные соединения с PHP и SOAP? - PullRequest
1 голос
/ 09 января 2011

Я новичок в использовании SOAP и понимании всех его основ.

Я создаю клиентский ресурс / соединение, затем запускаю несколько запросов в цикле, и все готово.Проблема, с которой я сталкиваюсь, заключается в том, что когда я увеличиваю количество итераций цикла, т.е. с 100 до 1000, кажется, что он исчерпывает память и сбрасывает внутреннюю ошибку сервера.несколько одинаковых соединений или б) создать соединение, 100 итераций, закрыть соединение, создать соединение и т. д.
«а)» выглядит лучшим вариантом, но я понятия не имею, как его установить и запустить, покасохранение памяти (я предполагаю открытие и закрытие соединений) как минимум.

Заранее спасибо!

index.php

<?php
// set loops to 0
$loops = 0;

// connection credentials and settings
$location = 'https://theconsole.com/';
$wsdl = $location.'?wsdl';
$username = 'user';
$password = 'pass';

// include the console and client classes
include "class_console.php";
include "class_client.php";

// create a client resource / connection
$client = new Client($location, $wsdl, $username, $password);

while ($loops <= 100)   
    {
    $dostuff;
    }
?>

class_console.php

<code><?php
class Console {
// the connection resource
private $connection = NULL;

/**
* When this object is instantiated a connection will be made to the console
*/
public function __construct($location, $wsdl, $username, $password, $proxyHost = NULL, $proxyPort = NULL) {

if(is_null($proxyHost) || is_null($proxyPort)) $connection = new SoapClient($wsdl, array('login' => $username, 'password' => $password));
else $connection = new SoapClient($wsdl, array('login' => $username, 'password' => $password, 'proxy_host' => $proxyHost, 'proxy_port' => $proxyPort));
$connection->__setLocation($location);
$this->connection = $connection;
return $this->connection;
}

/**
* Will print any type of data to screen, where supported by print_r
*
* @param $var - The data to print to screen
* @return $this->connection - The connection resource
**/
public function screen($var) {
print '<pre>';
print_r($var);
print '
';вернуть $ this-> connection;} / ** * Возвращает ресурс сервера / соединения * * @return $ this-> connection - Ресурс соединения * / public function srv () {return $ this-> connection;}}?>

Ответы [ 2 ]

0 голосов
/ 10 января 2011

Решено

Это была проблема с тайм-аутом.

0 голосов
/ 10 января 2011

Что ж, SOAP в PHP немного проблематичен.

По поводу вашего вопроса: да, SOAP принимает одновременные подключения. Вы верите в «нехватку памяти». Я считаю, что основная проблема связана с HTTP-ответами в секунду.

Можете ли вы разместить здесь свой журнал ошибок apache? - при условии, что вы используете PHP и Apache вместе в своей среде.

В любом случае, мой совет для вас: используйте REST, если можете!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...