diff --git a/WEB/Config/Config.php b/WEB/Config/Config.php index a5a63150..73060db8 100644 --- a/WEB/Config/Config.php +++ b/WEB/Config/Config.php @@ -37,6 +37,7 @@ $vues['enigmePage'] = 'View/src/pages/Enigme/EnigmePage.php'; $server = './server.js'; $serverAdress = "http://82.165.180.114"; $port= "3000"; +$playerNumberPerGame=2; //modules $modules = 'node_module/'; diff --git a/WEB/Model/UserModel.php b/WEB/Model/UserModel.php index 1517bbeb..20468508 100644 --- a/WEB/Model/UserModel.php +++ b/WEB/Model/UserModel.php @@ -52,23 +52,6 @@ class UserModel } echo '8'; $this->utilisateur_gateway->addToQueue($_SESSION['utilisateur'], $partie); - $this->Queue(); - } - - public function Queue(){ - global $port,$serverAdress; - // pas d'arrêt d'éxécution du script (No timeout) - set_time_limit(0); - // Créer une socket - $socket = socket_create(AF_INET, SOCK_STREAM,0) or die("la socket n'a pas pu être crée\n"); - // connecter la socket à l'adresse ip et au port du serveur - $result = socket_connect($socket,$serverAdress,$port) or die("la socket n'a pas pu être attachée au serveur à l'adresse "); - $request="Queuing"; - $response=""; - while(strcmp($response,"")>=0){ - $response=socket_read($socket,1024); - sleep(1); - } } public function findUserGroup() : int { @@ -89,6 +72,11 @@ class UserModel header('Location: index.php'); } + public function findUsersInQueue() : array + { + return $this->utilisateur_gateway->findUsersInQueue(); + } + public function getEnigmeByOrdre(int $num) : Enigme { $tabEnigme = $this->enigme_gateway->findByOrdre($num); diff --git a/WEB/Model/client.php b/WEB/Model/client.php new file mode 100644 index 00000000..eb9c4641 --- /dev/null +++ b/WEB/Model/client.php @@ -0,0 +1,44 @@ +socket,$serverAdress,$port) or die("la socket n'a pas pu être attachée au serveur à l'adresse "); + $request="Queuing"; + $response=""; + while(strcmp($response,"launchGame")!=0){ + $response=socket_read($this->socket,1024); + if($response!==false) + { + if(strcmp($response,"refreshQueue")==0) + { + $userGroup = $userModel->findUsersInQueue(); + $numberOfPlayer=count($userGroup); + header('Location : '.$rep.$vues['Queue']); + } + } + sleep(1); + } + } + +} \ No newline at end of file diff --git a/WEB/server.php b/WEB/server.php index b2621231..69a2037b 100644 --- a/WEB/server.php +++ b/WEB/server.php @@ -1,22 +1,73 @@ findPartieInQueue(); + $arraySocketGroup[$idPartie]= $socketsFromQueue; + $socketsFromQueue=array(); + } + else{ + $response="refreshQueue"; + foreach($socketsFromQueue as $sock) + { + socket_write($sock,$response,strlen($response)) or die("N'a pas pu écrire à la socket\n"); + } + } + } //Lire le message provenant de la socket du client $input = socket_read($spawn,1024) or die("N'a pas pu lire de requête"); }