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.
Scripted/WEB/Client/Client.php

46 lines
1.8 KiB

<?php
class Client{
private static $instance;
private $socket;
private function __construct() {
// Créer une socket
var_dump(socket_create(AF_INET, SOCK_STREAM,0));
$this->socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP) or die("la socket n'a pas pu être créée");
socket_bind($this->socket,'172.21.92.169', 4000) or die("la socket n'a pas pu être attachée à l'adresse ip et au port");
}
public static function getInstance() {
if (self::$instance === null) {
self::$instance = new self();
}
return self::$instance;
}
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);
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP) 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_connect($socket, $serverAdress, $port) or die("Impossible de se connecter au serveur ERROR : ".socket_strerror(socket_last_error())."\n");
$request="Queuing";
$response="";
while(strcmp($response,"launchGame")!=0){
echo "test";
$response=socket_read($socket,1024);
if($response!=false)
{
if(strcmp($response,"refreshQueue")==0)
{
$userGroup = $userModel->findUsersInQueue();
$numberOfPlayer=count($userGroup);
header('Location : '.$rep.$vues['Queue']);
}
}
sleep(1);
}
socket_close($socket);
}
}