2010-02-22 6 views
0

J'ai essayé d'établir une connexion entre mon client flash et le serveur Java pendant quelques jours, mais j'ai des problèmes avec le serveur de règles de socket. J'ai lu beaucoup d'informations en ligne (y compris le guide Adobe sur comment en créer un) mais je n'arrive toujours pas à le connecter, sauf dans l'option "Test Movie" de CS3.Problème du fichier de stratégie de socket Flash/AS2

La source pour le client et le serveur est assez longue, je vais donc essayer d'expliquer ce qu'ils font. OK, donc en gros je reçois la requête pour <policy-file-request/> dans mon serveur java, puis j'envoie "<cross-domain-policy><allow-access-from domain='*' to-ports='*' /></cross-domain-policy>" (essayé de nombreux autres fichiers xml) suivi d'un caractère nul (mais gardez la connexion ouverte, j'ai essayé de le fermer - encore n'a pas fonctionné). Il semble, cependant, que le client flash continue d'essayer de se connecter pendant environ 10 secondes avant d'abandonner. J'ai également mis en place un serveur mini-web à l'intérieur du serveur Java, qui sert une page web sur le même port lors de l'émission d'une requête de type http, et cela semble fonctionner, donc il ne peut pas être un port- problème de transfert.

J'ai également essayé le serveur d'exemple Adobe port 843, qui ne fonctionnait toujours pas. Lorsque j'accède au fichier html dans firefox/safari, je peux approuver manuellement la connexion, et cela fonctionne. J'ai lu qu'un crossdomain.xml n'est pas requis pour une connexion socket, mais n'en a pas moins expérimenté.

Où pensez-vous que je pourrais me tromper ici?

Répondre

0

bien je n'utilise pas java, mais je peux suggérer deux points de départ.

D'abord, vérifier s'il y a un problème avec le replacemento des doubles cotes (") sur le domaine et la configuration du port Ie:. En VB, nous pouvons utiliser chr (34) pour ce fait Jetez un oeil.

sock.SendData "<cross-domain-policy><allow-access-from domain=" & Chr(34) & "*" & Chr(34) & "to-ports=" & Chr(34) & "50505" & Chr(34) & "/></cross-domain-policy>" & Chr(0) 

Deuxièmement, le suivi mon application j'ai trouvé que le lecteur flash « débranche » et recconects après avoir reçu la réponse de son fichier de politique Ainsi, la séquence est la suivante:.

serveur demande de réception avec le msg « politiques file-request/" Le serveur répond au fichier de règles puis ... il se déconnecte (!) (?) alors il se connecte à nouveau (automaticaly)

L'astuce est en VB, nous devrions fermer la prise d'un événement sock_Close(), comme ceci:

Private Sub sock_Close() 
sock.Close       ' has to be called 
sock.Listen       ' listen again 

End Sub

it helps.