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

Flex Discussion :

Comment configurer flex SDK pour AMFPHP ?


Sujet :

Flex

  1. #1
    Membre régulier
    Inscrit en
    Février 2009
    Messages
    204
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 204
    Points : 123
    Points
    123
    Par défaut Comment configurer flex SDK pour AMFPHP ?
    Bonjour, j'ai un problème : je n'arrive pas à faire la communication entre le flex SDK et l'AMFPHP.
    J'utilise le flex SDK, et pas flex Builder car je n'ai pas d'argent.

    D'abord je vous explique comment j'ai installé le flex SDK et l'AMFPHP :
    -J'ai installé le flex SDK dans c:/server/apache/htdocs, donc le chemin du flex SDK est c:/server/apache/htdocs/flex_sdk

    -Et j'ai installé l'AMFPHP dans c:/server/apache/htdocs, donc le chemin de l'AMFPHP est c:/server/apache/htdocs/amfphp
    Ensuite dans le fichier services-config.xml qui se trouve dans le dossier c:/server/apache/htdocs/amfphp/broswer,
    j'ai remplacé l'url http://flashservices/gateway.php mentionnée dans la balise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <endpoint uri="http://flashservices/gateway.php" class="flex.messaging.endpoints.AMFEndpoint"/>
    par l'url http://localhost/amfphp/gateway.php pour bien préciser où se trouve le fichier gateway.php,
    ainsi mon fichier services-config.xml devient :

    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
    <?xml version="1.0" encoding="UTF-8"?>
    <services-config>
        <services>
            <service id="sabreamf-flashremoting-service"
                     class="flex.messaging.services.RemotingService"
                     messageTypes="flex.messaging.messages.RemotingMessage">
                <destination id="amfphp">
                    <channels>
                        <channel ref="my-amfphp"/>
                    </channels>
                    <properties>
                        <source>*</source>
                    </properties>
                </destination>
            </service>
        </services>
     
        <channels>
            <channel-definition id="my-amfphp" class="mx.messaging.channels.AMFChannel">
                <endpoint uri="http://localhost/amfphp/gateway.php" class="flex.messaging.endpoints.AMFEndpoint"/>
            </channel-definition>
        </channels>
    </services-config>
    Enfin pour bien vérifier l'installation l'ampfphp, je tape dans le navigateur http://localhost/amfphp/gateway.php :
    ça marche parfaitement.


    Ensuite j'ai crée un fichier classPhp.php que j'ai placé dans le dossier c:/server/apache/htdocs/amfphp/services,
    et dont le code est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
     
    class classPhp
    {
       function functionPhp() 
       {
         return "Succès";
       }
    }
     
    ?>
    Comme vous le voyez, ce fichier classPhp.php contient un service (ou class) nommé classPhp dont la méthode (ou function)
    nommée functionPhp a pour but d'afficher le mot "succès".
    Dans l'interface graphique d'amfphp qui se trouve à l'adresse http://localhost/amfphp/browser,
    j'ai testé le fichier classPhp.php, et en appuyant sur le bouton "Call", et bien j'ai bien le mot "succès" qui s'affiche.

    Ensuite, Il ne reste plus qu'à tester l'appel de ce fichier classPhp.php à partir d'une application flex, càd à partir d'un fichier .swf,
    Pour cela, j'ai crée une application flex nommée project.mxml, et je l'ai placé dans le dossier
    c:/server/apache/htdocs/flex_sdk/samples/, et dont le code source est :


    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
    <?xml version='1.0' encoding='iso-8859-1'?>
    <mx:Application xmlns:mx='http://www.adobe.com/2006/mxml'>
     
    <mx:RemoteObject 
    id="idRemoteObject" 
    endpoint="http://localhost/amfphp/gateway.php"  
    source="classPhp" 
    showBusyCursor="true"  
    destination="amfphp">
     
    <mx:method 
    name="functionPhp" 
    result="resultHandler(event)" 
    fault="faultHandler(event)"/>
     
    </mx:RemoteObject>
     
     
    <mx:Script>
     
    <![CDATA[ 
     
    import mx.controls.Alert;
    import mx.rpc.events.FaultEvent;
    import mx.rpc.events.ResultEvent;
     
     
    public function faultHandler(fault:FaultEvent):void
    {
       Alert.show(fault.fault.faultCode, fault.fault.faultDetail);
    }
     
     
    public function resultHandler(e:ResultEvent):void
    {
      idTextArea.text=e.result.toString();		
    }
     
     ]]>
     
    </mx:Script>
     
    <mx:TextArea id='idTextArea'/>
    <mx:Button label="Button" click="idRemoteObject.getOperation('functionPhp').send();"/>
     
    </mx:Application>

    Puis, je l'ai compilé en ligne de commande, ce qui me donne le fichier project.swf.
    Cette application flex doit afficher uniquement un textarea et un bouton.
    Le but de cette application flex doit étre le suivant : lorsqu'on appuie sur le bouton,
    et bien ça doit appeler le fichier (ou service) classPhp.php
    pour pouvoir afficher le mot "succès" dans le textarea.


    Puis, j'ai ouvert le fichier project.swf avec un navigateur (firefox)

    J'appuie sur le bouton, et une alert d'erreur affiche le message suivant :
    Channel.Security.Error error Error #2048 url: 'http://localhost/amfphp/gateway.php'
    Client.Error.MessageSend



    Donc que qu'est-ce qu'il manque pour que ça marche ?

    Merci d'avance, cordialement

  2. #2
    Nouveau Candidat au Club
    Inscrit en
    Février 2011
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Comment configurer flex SDK pour AMFPHP ?
    Bonjour,

    J'ai résolu le même problème en ajoutant :
    -services "services-config.xml"
    dans ma ligne de commande, le fichier services-config.xml étant dans le répertoire courant.

Discussions similaires

  1. Réponses: 2
    Dernier message: 31/12/2008, 12h16
  2. Réponses: 1
    Dernier message: 19/11/2008, 05h47
  3. Comment configurer le Xampp pour l'adresse ip lan
    Par hoangeric dans le forum Debian
    Réponses: 1
    Dernier message: 14/08/2008, 10h45
  4. [VB.NET] Comment configurer le LocalPort pour le socket
    Par predictus dans le forum VB.NET
    Réponses: 1
    Dernier message: 15/03/2007, 19h51
  5. Réponses: 3
    Dernier message: 19/12/2006, 19h38

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