IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Dynamique Discussion :

Socket xml flash/PHP


Sujet :

Dynamique

  1. #1
    Invité
    Invité(e)
    Par défaut Socket xml flash/PHP
    Bonjour,
    J'essaie en ce moment de faire échanger mon swf avec un serveur via une socket xml. Pour l'envoie vers le serveur ça marche nickel. Ensuite le serveur renvoie bien un xml vers le swf. Mais là impossible de récupérer quoique ce soit.
    Code : Actionscript

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    var theSocket:XMLSocket = new XMLSocket();
    theSocket.connect('localhost', 2010);
     
    function sendData()
       {
       var myXML:XML = new XML();
       var mySend = myXML.createElement("thenode");
       mySend.attributes.myData = "someData";
       myXML.appendChild(mySend);
       theSocket.send(myXML);
       };
     
    // le bouton envoie des données
    sendButton1.onRelease = function()
       {
       sendData();
       };
     
    theSocket.onConnect = function(myStatus)
       {
       if (myStatus)
          {
          trace("connections successful");
          }
       else
          {
          trace("no connection made");
          }
       };
     
    theSocket.onData = function(msg):Void
       {
       trace("1"+msg);
       };
     
    stop();

    Du côté PHP j'ai codé ainsi :
    Code : PHP

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    <?php
    //Temps maximum d'exécution de la page <gras><couleur nom="rouge">nul</couleur></gras>
    set_time_limit(0);    
     
    //Coordonnées du serveur == le pc qui lancera cette page
    $port = 2010;
    $adresse = "127.0.0.1";
     
    //On crée la socket
    if(($socket = socket_create(AF_INET, SOCK_STREAM, 0)) === false)
            echo 'La création de la socket a échoué : '.socket_strerror($socket)."\n<br />";
     
    //On assigne la socket à une adresse et à un port, que l`on va écouter par la suite
    if(($assignation = socket_bind($socket, $adresse , $port)) < 0)
            echo "L'assignation de la socket a échoué : ".socket_strerror($assignation)."\n<br />";
     
    //On prépare l`écoute
    if(($ecoute = socket_listen($socket)) === false)
            echo "L'écoute de la socket a échoué : ".socket_strerror($ecoute)."\n<br />";
     
    //Le code se bloque jusqu`à ce qu'une nouvelle connexion client soit établie
    if(($client = socket_accept($socket)) === false)  
            echo "Le client n'a pas pu se connecter : ".socket_strerror($client)."\n<br />";
     
    //Lors d'une connexion, le code reprend ici, il est temps de lire ce qu'on nous envoie
    if(($reception = socket_read($client , 255)) === false)
            echo "La socket n'a pas pu être lue : ".socket_strerror($reception)."\n<br />";
    else
           echo "La socket a pu être lue et le message est : ".htmlentities($reception).'<br />';
     
    //Si ça ne marche pas, c'est qu`il est déconnecté
    $reponse = $reception;
    $reponse = '<thenode myData="someDataEnPlus" />0';
    if(( socket_write($client, $reponse, strlen($reponse)) ) === false)
            echo "Client déconnecté\n<br />";
    else
       {
            echo 'Message envoyé : '.htmlentities($reponse).'</br>';
       }
     
    //Fermeture de la socket du client
    socket_close($client);
     
    //Fermeture du serveur
    socket_close($socket);
    ?>

    A l'exécution, je lance le serveur, puis le flash. Le serveur tourne et dès que j'envoie les données du flash ça m'affiche côté serveur :


    La socket a pu être lue et le message est : <thenode myData="someData" />
    Message envoyé : <thenode myData="someDataEnPlus" />0


    Tout est donc normal côté serveur sauf que le flash ne reçoit pas les données en retour. Or si je fait la même chose avec un client php et non flash ça marche très bien. Où est le hic ? Qu'ai je oublié ?

    En effet du côté Flash je m'attends à voir mon message XML qui est tracé au retour or rien du tout !

    Merci énormément de votre attention !!

    Benoît
    Dernière modification par Deepin ; 03/03/2010 à 08h51. Motif: Merci d'utiliser la balise [CODE] de l'éditeur

  2. #2
    Invité
    Invité(e)
    Par défaut
    ok résolu : il faut rajouter un bit nul .chr(0) à la fin du message xml sinon flash ne déclenche pas le onData !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [FLASH MX2004] écrire dans un XML par PHP
    Par morgiane dans le forum Flash
    Réponses: 2
    Dernier message: 14/11/2006, 11h02
  2. [FLASH 8] Recuperation de XML par PHP
    Par bibile dans le forum Flash
    Réponses: 1
    Dernier message: 14/08/2006, 22h26
  3. [DOM XML] Insertion données dans fichier XML avec PHP pour Flash ?
    Par ExSter dans le forum Bibliothèques et frameworks
    Réponses: 17
    Dernier message: 10/05/2006, 11h16
  4. communication mysql, php, xml, flash
    Par klams dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 21/03/2006, 18h12
  5. Réponses: 7
    Dernier message: 17/09/2005, 00h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo