You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
43 lines
1.4 KiB
43 lines
1.4 KiB
<?php
|
|
|
|
class clientServer{
|
|
private static $instance;
|
|
private Socket $socket;
|
|
private function __construct() {
|
|
// Créer une socket
|
|
$socket = socket_create(AF_INET, SOCK_STREAM,0) or die("la socket n'a pas pu être crée\n");
|
|
|
|
}
|
|
private function __clone() {}
|
|
public static function getInstance() {
|
|
if (self::$instance === null) {
|
|
self::$instance = new self();
|
|
}
|
|
return self::$instance;
|
|
}
|
|
// ... autres méthodes de la classe ...
|
|
|
|
public function Queuing(){
|
|
global $port,$serverAdress,$rep,$vues;
|
|
$userModel = new UserModel();
|
|
// pas d'arrêt d'éxécution du script (No timeout)
|
|
set_time_limit(0);
|
|
// connecter la socket à l'adresse ip et au port du serveur
|
|
$result = socket_connect($this->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);
|
|
}
|
|
}
|
|
} |