2010-04-09 4 views
0

Je construis une application Flex, qui va effectuer de nombreuses requêtes serveur (disons que presque toutes les interactions requièrent une mise à jour du serveur). Pour l'instant, j'utilise des appels de procédure à distance pour cela. Mais je me demandais si l'utilisation d'une prise serait mieux.Flex: question de messagerie client/serveur (RPC ou socket?)

En d'autres termes, est-il préférable de garder la connexion active plutôt que d'effectuer de nombreux appels en séquence?

Pour mon application de démonstration, je n'ai qu'un seul client. Le nombre de clients se connectant au serveur est-il un facteur pour ce choix?

grâce

Répondre

0

Si vous utilisez une prise (et la construction de pratiquement votre propre serveur NIO, peut-être basé sur Apache MINA), il est possible d'obtenir un coup de pouce sur les performances, mais à mon avis, vous devrez investir un montant énorme de travail à ce sujet. Je connais quelques personnes qui utilisent cette approche mais pour une application très particulière (un jeu Flash qui était censé avoir des zounds d'utilisateurs). Ils passent un mois à le construire. Une autre solution (si vous envisagez d'utiliser des sockets) est d'utiliser certains produits qui offrent des canaux RTMP (LCDS, WebOrb) mais ils ne sont pas gratuits et à mon avis ça ne vaut pas la peine si vous envisagez de les utiliser juste pour les appels RPC sur une socket.

Pour la plupart des cas, l'approche RPC basée sur POST devrait être assez bonne. La sérialisation AMF est assez compacte (j'ai écrit here un petit benchmark et vous pouvez trouver d'autres ressources sur le web).

Flash Player envoie également votre requête RPC en un seul lot - par exemple, si vous appelez vos méthodes Flex code 3 l'une après l'autre, tous seront regroupés dans un seul appel POST.