diff --git a/WEB/Client/Queing.php b/WEB/Client/Queing.php new file mode 100644 index 00000000..9d3d4cc1 --- /dev/null +++ b/WEB/Client/Queing.php @@ -0,0 +1,64 @@ +m_inputs = $inputs; + $this->m_outputs = new Threaded(); // we will store the results in here. + } + + + public function run() + { + global $port, $serverAdress, $rep, $vues, $BUFFER_SIZE; + $userModel = new UserModel(); + // pas d'arrêt d'éxécution du script (No timeout) + set_time_limit(0); + $socket = socket_create(AF_INET, SOCK_STREAM, 0) or die("la socket n'a pas pu être créée ERROR : " . socket_strerror(socket_last_error()) . "\n"); + // connecter la socket à l'adresse ip et au port du serveur + $result = socket_set_block($socket); + if ($result === false) { + echo "socket_set_block a échoué : " . socket_strerror(socket_last_error()) . "\n"; + } else { + echo "socket_set_block a réussi.\n"; + } + $result = socket_connect($socket, $serverAdress, $port) or die("Impossible de se connecter au serveur ERROR : " . socket_strerror(socket_last_error()) . "\n"); + if ($result === false) { + // La connexion de la socket à l'adresse et au port a échoué + echo "socket_connect a échoué : " . socket_strerror(socket_last_error()) . "\n"; + } else { + echo "socket_connect a réussi.\n"; + $request = "Queuing"; + $result = socket_write($socket, $request, strlen($request)); + if ($result === false) { + echo "socket_write a échoué : " . socket_strerror(socket_last_error()) . "\n"; + } else { + echo "socket_write a réussi.\n"; + } + $response = ""; + while (strcmp($response, "launchGame") != 0) { + $response = socket_read($socket, $BUFFER_SIZE); + if ($response != false) { + echo "socket_read a réussi.\n"; + if (strcmp($response, "refreshQueue") == 0) { + $userGroup = $userModel->findUsersInQueue(); + $numberOfPlayer = count($userGroup); + header('Location : ' . $rep . $vues['queue']); + } + } else { + echo "socket_read a échoué : " . socket_strerror(socket_last_error()) . "\n"; + break; + } + } + } + } + + + # Accessors + public function getResults() { return $this->m_outputs; } +} \ No newline at end of file diff --git a/WEB/Controller/UserController.php b/WEB/Controller/UserController.php index 678087ff..cea22cb8 100644 --- a/WEB/Controller/UserController.php +++ b/WEB/Controller/UserController.php @@ -174,7 +174,7 @@ class UserController $model = new UserModel(); $model->addToQueue(); $client = Client::getInstance(); - $client->Queuing(); + new Queuing(); require($rep . $vues['queue']); } catch (Exception $e) { $error = $e->getMessage();