Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Flash/Flex > Flash > AS3
AS3 Questions relatives à la programmation ActionScript 3 (Cours AS3)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/02/2011, 15h34   #1
Invité de passage
 
Inscription : février 2011
Messages : 5
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 5
Points : 0
Points : 0
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.
kikoo89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/02/2011, 16h42   #2
Membre éprouvé
 
Avatar de IP-Fix
 
Inscription : mars 2006
Messages : 406
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : mars 2006
Messages : 406
Points : 433
Points : 433
Envoyer un message via MSN à IP-Fix
il faut que ton serveur renvois le crossdomain en socket lors de la reception du message envoyé par le client flash...
__________________
Mon nouveau blog : Flash-Dungeon : AS3 / Objectif-C
IP-Fix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/02/2011, 16h59   #3
Invité de passage
 
Inscription : février 2011
Messages : 5
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 5
Points : 0
Points : 0
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.
kikoo89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/02/2011, 17h30   #4
Membre éprouvé
 
Avatar de IP-Fix
 
Inscription : mars 2006
Messages : 406
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : mars 2006
Messages : 406
Points : 433
Points : 433
Envoyer un message via MSN à IP-Fix
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 ?
__________________
Mon nouveau blog : Flash-Dungeon : AS3 / Objectif-C
IP-Fix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/02/2011, 19h22   #5
Membre Expert
 
Avatar de Madfrix
 
Inscription : juin 2007
Messages : 2 278
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : juin 2007
Messages : 2 278
Points : 2 324
Points : 2 324
Bonjour,

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

Code :
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 :
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é ^^
__________________
Je ne réponds pas aux questions envoyées par mp
Madfrix est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 11/02/2011, 19h38   #6
Invité de passage
 
Inscription : février 2011
Messages : 5
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 5
Points : 0
Points : 0
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.
kikoo89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2011, 11h18   #7
Invité de passage
 
Inscription : février 2011
Messages : 5
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 5
Points : 0
Points : 0
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 . ?
kikoo89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/02/2011, 09h49   #8
Membre régulier
 
Avatar de SnowStyle
 
Homme
Développeur Web
Inscription : octobre 2005
Messages : 68
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : octobre 2005
Messages : 68
Points : 73
Points : 73
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 :
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"); }
SnowStyle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/02/2011, 11h28   #9
Membre Expert
 
Avatar de Madfrix
 
Inscription : juin 2007
Messages : 2 278
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : juin 2007
Messages : 2 278
Points : 2 324
Points : 2 324
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 ?
__________________
Je ne réponds pas aux questions envoyées par mp
Madfrix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/02/2011, 11h45   #10
Invité de passage
 
Inscription : février 2011
Messages : 5
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 5
Points : 0
Points : 0
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 ?
kikoo89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/02/2011, 13h22   #11
Membre éprouvé
 
Avatar de IP-Fix
 
Inscription : mars 2006
Messages : 406
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : mars 2006
Messages : 406
Points : 433
Points : 433
Envoyer un message via MSN à IP-Fix
ajoute un ecouteur qui check les data entrant
__________________
Mon nouveau blog : Flash-Dungeon : AS3 / Objectif-C
IP-Fix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2011, 12h27   #12
Invité de passage
 
Inscription : février 2011
Messages : 5
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 5
Points : 4
Points : 4
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 :
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 ?
bieltan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2011, 01h36   #13
Membre Expert
 
Avatar de Madfrix
 
Inscription : juin 2007
Messages : 2 278
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : juin 2007
Messages : 2 278
Points : 2 324
Points : 2 324
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 ?
__________________
Je ne réponds pas aux questions envoyées par mp
Madfrix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2011, 10h18   #14
Invité de passage
 
Inscription : février 2011
Messages : 5
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 5
Points : 4
Points : 4
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
bieltan est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h48.


 
 
 
 
Partenaires

Hébergement Web