Comment Flash communique-t-il avec les services/scripts sur les serveurs via AMF?
Les données sont transférées via une connexion TCP/IP. Parfois, une connexion HTTP existante est utilisée et, dans d'autres cas, une nouvelle connexion TCP/IP est ouverte pour les données AMF. Lorsque les connexions HTTP ou TCP supplémentaires sont ouvertes, l'interface Sockets est probablement utilisée. L'AMF passe certainement par une sorte de connexion TCP, et l'interface Sockets est pratiquement le seul moyen d'ouvrir une telle connexion. Les "données" transférées sont des types de données ECMA-script (Javascript (tm)) tels que "integer", "string", "object", et ainsi de suite.
Pour une spécification technique de la façon dont les objets sont codés en binaire, Adobe a publié une spécification: AMF 3.0 Spec at Adobe.com
En général, la façon dont un système client en utilisant AMF/serveur fonctionne est quelque chose comme ceci:
- Le client affiche une interface utilisateur et ouvre une connexion TCP au serveur.
- Le serveur envoie des données au client, ce qui met à jour son interface utilisateur.
- Si l'utilisateur passe une commande, le client envoie des données au serveur via la connexion TCP.
- Continuez les étapes 2-3 jusqu'à ce que l'utilisateur quitte.
Par exemple, si l'utilisateur clique sur un bouton "envoyer du courrier" dans l'interface utilisateur, le code client peut faire:
public class UICommandMessage extends my.CmdMsg
{
public function UICommandMessage(action:String, arg: String)
{
this.cmd = action;
this.data = String;
}
}
Puis, plus tard:
UICommandMessage msg = new UICommandMessage("Button_Press", "Send_Mail");
server_connection.sendMessage(msg);
dans le code serveur, le serveur surveille également la connexion pour l'objet AMF entrant. Il reçoit le message et transmet le contrôle à une fonction de réponse appropriée. C'est ce qu'on appelle "l'envoi d'un message".
Avec plus d'informations sur ce que vous essayez d'accomplir, je pourrais vous donner plus de détails utiles.