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

ActionScript 3 Discussion :

Flash Application Client/Serveur


Sujet :

ActionScript 3

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 5
    Par défaut Flash Application Client/Serveur
    Bonjour,

    Je développe en ce moment une application en Flash, de type Client/Serveur qui envoi des drapeaux("message de services") et en réceptionnes.

    Pour synchroniser le client et le serveur on me demande d'utiliser une socket.

    Mon Problème:

    Lorsque mon application se retrouve sur le web j'ai une erreur "Error #2048: Violation de la sécurité Sandbox".

    J'ai cherché du coté de Crossdomain, et des policyfiles. En production, j'ai toujours un type de sandbox "REMOTE" . Est-il possible de modifier le type de sandbox REMOTE à LOCAL_WITH_NETWORK.

  2. #2
    Membre chevronné Avatar de IP-Fix
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    421
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 421
    Par défaut
    il faut que ton serveur renvois le crossdomain en socket lors de la reception du message envoyé par le client flash...

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 5
    Par défaut
    Merci, de prendre en compte mon problème.

    J'ai essayé de renvoyer le crossdomain.xml, juste après la reception de < policy-file-request/> et cela semble ne pas fonctionner. aurais-tu un exemple a me proposé.

    Squall30.

  4. #4
    Membre chevronné Avatar de IP-Fix
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    421
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 421
    Par défaut
    Pas les sources de mon derniers serveur socket sous la main mais je te le poste d'ici demain midi.

    Par ailleurs tu renvois bien le xml de crossdomain complet au policy avec la bonne autorisation ?

  5. #5
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    Bonjour,

    ton client as3 demande une connexion à un serveur de socket via la chaine suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <policy-file-request/>
    Donc ton serveur de sockets doit être capable de renvoyer le crossdomain lorsqu'il recoit cette chaine de caractères (ex en PHP) :


    Code php : 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
     
    ...
    $input = trim(socket_read($client, 255));
     
    if($input == '<policy-file-request/>'){
     
    $retour = '	<?xml version="1.0"?>
    		<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
    		<cross-domain-policy> 
    		<allow-access-from domain="*" to-ports="*" /> 
    		</cross-domain-policy>';
     
    socket_write($client, $retour.chr(0));
    socket_close($client);					
     
    }

    Le crossdomain est bien sur à configurer. Ne surtout pas oublier d'envoyer le caractère nul (chr(0)) à la fin.
    Une fois ceci fait, la connexion est établie mais Flash ne peut pas utiliser cette socket. Il faut donc basiquement que tu l'as referme puis que tu réouvre une connexion. Là cela marchera, il ne redemandera plus le policy-file.

    C'est simple mais j'aurais aimé qu'on me dise cela le jour où j'ai cherché ^^

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 5
    Par défaut
    Ok , je vais tester cela ce week end . je vous tiens au courant

    Je tiens à vous remercier tout les deux pour l'aide que vous m'apportez.
    ^^

    Squall30.

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 5
    Par défaut
    Rebonjour,

    Aprés plusieurs test cela ne fonctionne toujours pas

    Schéma du deroulement:

    Ouverture de Flash -> demandeau Serveur de crossdomain -> Reponse du Serveur -> fermeture Socket Cote Flash-> Reouverture socket Cote Flash.

    Y'a t'il autre chose à faire ^-^' . Auriez vous un exemple d'un serveur simple en php . ?

  8. #8
    Membre éclairé Avatar de SnowStyle
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2005
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2005
    Messages : 73
    Par défaut
    J'avais fait un serveur php pour un jeu flash y'a quelques temps déjà, donc aucune idée si ça fonctionne encore

    mais bon, en cas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    $policy_file = '<?xml version="1.0"?>
    <!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
    <cross-domain-policy>
    <allow-access-from domain="*" to-ports="*" secure="false" />
    <site-control permitted-cross-domain-policies="all" />
    </cross-domain-policy>';
     
    ....
     
    $input = socket_read($sock, 1024);
     
    ....
     
    if ($input == '<policy-file-request/>'.chr(0x00)) { socket_write($sock,trim($policy_file)."\n\0"); }

  9. #9
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    Citation Envoyé par kikoo89 Voir le message
    Rebonjour,

    Aprés plusieurs test cela ne fonctionne toujours pas

    Schéma du deroulement:

    Ouverture de Flash -> demandeau Serveur de crossdomain -> Reponse du Serveur -> fermeture Socket Cote Flash-> Reouverture socket Cote Flash.

    Y'a t'il autre chose à faire ^-^' . Auriez vous un exemple d'un serveur simple en php . ?
    Quels sont les symptômes que tu obtiens ?
    Tu lances bien en mode CLI ton serveur de sockets ?

    C'est à la réouverture que ca foire ?

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 5
    Par défaut
    Le serveur reçois la demande <policy-file-request> il renvoit le policyfile, du cote flash il semble ne pas le recevoir. Et du coup aucune connexion type de Sandbox toujours à remote.

    Est-il possible de voir si il l'a bien recu ?

  11. #11
    Membre chevronné Avatar de IP-Fix
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    421
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 421
    Par défaut
    ajoute un ecouteur qui check les data entrant

  12. #12
    Nouveau membre du Club
    Inscrit en
    Février 2011
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 7
    Par défaut
    Bonjour, je dévellope moi aussi une application client / serveur avec un client Flash et un serveur java et j'ai moi aussi ce problème avec le <policy-file-request/>.

    Lorsqu'il reçoit un message mon serveur test donc si c'est une <policy-file-request/> si oui il renvoi le message :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?xml version="1.0"?>
    		<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
    		<cross-domain-policy> 
    		<allow-access-from domain="*" to-ports="*" /> 
    		</cross-domain-policy>
    Cependant cela ne marche toujours pas. Madfrix tu parles de fermer puis réouvrir la connexion du socket. Je dois faire cela coté client ou serveur ?

    En plus de ça je travaille en AS2 y'a-t'il une vrai différence ?

  13. #13
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    Bonjour et désolé pour le temps de réponse

    Citation Envoyé par bieltan Voir le message
    Cependant cela ne marche toujours pas. Madfrix tu parles de fermer puis réouvrir la connexion du socket. Je dois faire cela coté client ou serveur ?

    En plus de ça je travaille en AS2 y'a-t'il une vrai différence ?
    Je parle de fermer la socket côté client et serveur. Cette étape est non-indispensable mais ta socket sera inopérante donc autant la fermer et côté serveur aussi afin d'effacer toutes traces de cette socket de connexion. Quand à l'AS2, oui ce sera différent (je sais même pas si la classe existait pré-AS3). Toujours est il que la gestion des événements étant différente, tu devras adapter ton code. Pas moyen de migrer vers AS3 ?

    Le problème persiste t-il toujours pour l'un d'entre vous ?

  14. #14
    Nouveau membre du Club
    Inscrit en
    Février 2011
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 7
    Par défaut
    Merci pour ta réponse.

    Pour le passage de AS 2 vers AS 3 je viens de commencer et le tuto suivi était centré sur l'AS2 je vais essayer de voir si je trouve de bon tuto/livre pour me mettre à l'AS3.


    Pour le moment le problème n'est pas résolut. Je te tiens au courant

Discussions similaires

  1. [Free Pascal] Application client/serveur en Pascal
    Par zouzou_zaza dans le forum Free Pascal
    Réponses: 15
    Dernier message: 02/09/2004, 17h57
  2. [Débutant] Application client serveur
    Par dk dans le forum Plateformes (Java EE, Jakarta EE, Spring) et Serveurs
    Réponses: 7
    Dernier message: 30/06/2004, 11h38
  3. Choix port pour application client-serveur
    Par Tiaps dans le forum Développement
    Réponses: 7
    Dernier message: 15/03/2004, 09h49
  4. Réponses: 2
    Dernier message: 01/10/2002, 12h25
  5. Langage le mieux adapté pour application client serveur ?
    Par guenus dans le forum Débats sur le développement - Le Best Of
    Réponses: 4
    Dernier message: 17/06/2002, 15h46

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