Я рассматриваю PHP-клиент (у меня уже есть клиент C #) в качестве доказательства концепции.Клиент PHP будет подключаться к тому же серверу .NET с использованием SOAP.В качестве примера я использую игру блэкджек.
Теперь сначала клиент C # работает идеально, но в PHP есть проблема.После большой отладки я обнаружил, что PHP всегда использует новое соединение для каждого вызова удаленного сервера.Это делает невозможным программирование игры.
Например, у меня есть файл PHP, который просто настраивает клиента следующим образом (client.php):
try {
$client = @new soapClient("http://localhost:8000/BlackJack/Service?wsdl",
array(
"trace" => 1,
"exceptions" => 0,
"cache_wsdl" => 0)
);
} catch (Exception $e) {
print 'Caught exception: ' . $e->getMessage() . "\n";
}
Затем в моем главномфайл (я буду использовать вызовы jQuery и ajax для его динамической загрузки, но сейчас я просто тестирую) У меня есть следующий код (blackJackClient.php):
require_once("client.php");
$ini = ini_set("soap.wsdl_cache_enabled","0");
$BetAmountPost = 100;
print_r($result = $client->buttonDeal_Click(array("BetAmount" => (string)$BetAmountPost))->buttonDeal_ClickResult);
print_r($result = $client->PlayerMoney()->PlayerMoneyResult);
Первый вызов запустит новую игру (Deal)и игрок получает сумму своей ставки (например, 100) из общей суммы (1000).Так что мне возвращают в результате деньги = 900.
Следующий коммандос спросит, какие деньги у меня сейчас есть, и кто-то ожидает получить 900, но нет, вместо этого у меня есть 1000 (моя стартовая сумма).
Итак, мой вопрос: как я могу сделать так, чтобы все вызовы выполнялись за 1 сеанс, чтобы мы все равно использовали одно и то же соединение?
Спасибо!