connect() public method

public connect ( $host, $port, $path, $origin = false )
Esempio n. 1
0
function postToWebSocket($property, $value, $post_action = 'PostProperty')
{
    if (defined('DISABLE_WEBSOCKETS') && DISABLE_WEBSOCKETS == 1) {
        return;
    }
    require_once ROOT . 'lib/websockets/client/lib/class.websocket_client.php';
    global $wsClient;
    if (!Is_Object($wsClient)) {
        $wsClient = new WebsocketClient();
        if (!@$wsClient->connect('127.0.0.1', WEBSOCKETS_PORT, '/majordomo')) {
            $wsClient = false;
        }
    }
    if (!Is_Object($wsClient) && isset($_SERVER['REQUEST_METHOD'])) {
        return false;
    }
    $payload = json_encode(array('action' => $post_action, 'data' => array('NAME' => $property, 'VALUE' => $value)));
    $data_sent = false;
    if (Is_Object($wsClient)) {
        $data_sent = @$wsClient->sendData($payload);
    }
    if (!$data_sent && !isset($_SERVER['REQUEST_METHOD'])) {
        //reconnect
        $wsClient = new WebsocketClient();
        if (@$wsClient->connect('127.0.0.1', WEBSOCKETS_PORT, '/majordomo')) {
            $wsClient->sendData($payload);
        }
    }
}
Esempio n. 2
0
/**
 * Fonction permettant la planification horaire 
 * $Mac est un string, l'adresse mac de la multiprise du client 
 * $N_prise est un int, le numéro de la prise qui se modifie
 * $Nb_Ephe est un int, le nombre d'éphémeride
 * $Plannif est un string, il s'agit du jouer et l'heure planifié pour un changement d'etat 
 * Return $resultat string, renvoi confirmation ou echec
 */
function Ephemeride($Mac, $N_prise, $Nb_Ephe, $Plannif)
{
    //Adresse IP du serveur WS
    $Ip = '172.17.50.152';
    //appel de la BDD
    Base_de_donnees();
    try {
        $ephe = 'Nb_Ephe_Prise' . $N_prise;
        $prise = 'Prise' . $N_prise . '_E' . $Nb_Ephe;
        // Requete sql qui selectionne la ligne en fonction de l'adresse mac
        $requete = mysql_query("SELECT * FROM multiprise WHERE Mac='{$Mac}'");
        // Vérification du contenu de la requete
        if (mysql_num_rows($requete) == 0) {
            return "Impossible d'effectuer cette action";
        } else {
            //requete permettant la mise a jour de la table programmation contenant les données de la planification
            $reponse = mysql_query("UPDATE programmation SET {$ephe}='{$Nb_Ephe}', {$prise}='{$Plannif}' WHERE Mac='{$Mac}' ");
            //Le prise ayant subit une planification horaire prend la valeur 1
            switch ($N_prise) {
                case 1:
                    $p = '10000';
                    break;
                case 2:
                    $p = '01000';
                    break;
                case 3:
                    $p = '00100';
                    break;
                case 4:
                    $p = '00010';
                    break;
                case 5:
                    $p = '00001';
                    break;
            }
            // Création d'un client web socket et connexion au serveur
            $client = new WebsocketClient();
            $client->connect($Ip, 9300, '/');
            // Renvoi "#" + l'adresse Mac + la prise qui a subbit le changement
            $client->sendData("#{$Mac}{$p}");
            return "Programmation de la prise effectuée";
        }
    } catch (Exception $a) {
        //En cas d'erreur de connexion
        die('Erreur:' . $a->getMessage());
    }
}