Bonjour à tous,
Voilà, je rencontre un problème intéressant avec RemoteObject, que j'utilise depuis longtemps sans problème, avec un backend Java (GAE) et GraniteDs. Voici la situation :
- j'ai un singleton qui expose une propriété, laquelle "cache" un RemoteObject :
- et différentes classes qui effectuent des appels distants, en se servant de cette propriété ro, par exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 private var _ro:RemoteObject; public function get ro():RemoteObject { return( _ro ) ? _ro : _ro = getNewRo( "service" ); }
Or, lors d'appels successif rapides (boucle de 3 appels "rpcApp.ro.insert( mark, vo );"), j'ai eu la surprise de recevoir ... 3 fois le dernier message émis par le serveur en réponse aux appels. En résumé : call 1, call 2, call 3 retourne 3 fois la réponse du call 3.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 var request:AsyncToken = rpcApp.ro.insert( mark, vo ); request.addResponder( new AsyncResponder( roInsertAnswer, roInsertFault, token ) );
Après avoir bien cherché, j'ai fini par désactiver le "cache" RemoteObject, c'est à dire que désormais, j'instancie un nouveau RemoteObject à chaque appel de méthode distante, et désormais tout est ok (call 1, call 2, call 3 retourne bien les réponses des uns et des autres).
Voilà, j'ai bien cherché sans trouver dans google de cas analogue. Est-ce que cela dit quelque chose à l'un d'entre vous ?
Merci, et je profite de ce post pour tous vous remercier pour la qualité de ce site
bkin
Partager