|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre du Club
![]() Aurélien BénéficeDéveloppeur Web Inscription : avril 2009 Messages : 95 ![]() |
Bonjour à tous,
J'aurais souhaité savoir s'il était possible de définir des règles de changement de Channel (fallback policy) avec AMFPHP et des channels définis dynamiquement. Peut-être que ma question sera plus claire pour vous en voyant mon code actuel : Code :
En revanche, le remoteObject "n'attaque" que le premier channel. S'il ne reçois pas de réponse, il n'essaye pas avec le second channel. Je cherche dans la documentation flex mais pour l'instant sans résultat. Merci d'avance pour tout conseil utile (ou pas). |
||
|
|
00
|
|
|
#2 |
|
Membre habitué
![]() |
Hello,
Est ce que ta question est : "Est ce que Flex prévoit un comportement de fallback au cas où la destination du canal n'est pas disponible ?" Ou "Comment est ce que je peux faire pour changer automatiquement de canal si la destination ne réponds pas ?"
__________________
Si je vous poste un bout de code pour vous aider, prenez bien en compte que je n'ai pas testé ce que je vous poste et que je vous donne les grandes lignes. Donc ne me dites pas : "Ca marche pas ton truc, y a une erreur..." |
|
|
00
|
|
|
#3 | |
|
Membre du Club
![]() Aurélien BénéficeDéveloppeur Web Inscription : avril 2009 Messages : 95 ![]() |
Bonjour maskime,
j'opte pour la reponse 2 : Citation:
|
|
|
|
00
|
|
|
#4 |
|
Membre habitué
![]() |
Hello,
Pas de soucis Bon sinon comment est ce que tu pourrais faire pour qu'il change de channel automatiquement... Je suppose que pour commencer il faut que tu passes par une gestion des tes appelles aux remotes en AS pluôt qu'en MXML (question de préférence mais si tu vois comment faire ce que je vais te dire en MXML...) Alors, sans rentrer dans le détail (parce que ça pourrais carrément faire l'objet d'un article maintenant que j'y pense...) Il faut que tu centralises ta gestion des faultHandler() et que dans le cas où tu reçois une erreur qui indique que tu n'as pas eu de réponse de la part de la destination, il faut que ton faultHandler soit capable de : 1. changer le channel 2. rappeler le remote que tu viens d'appeler avec les params passés sur le nouveau channel Je sais pas si ce que je viens de te dire t'as vraiment aidé mais en réfléchissant un peu je me rends compte que ça peut vite devenir complexe de gérer ça dans Flex. Je ne connais pas ton besoin mais je me demande si ca serait pas plus simple de gérer ça côté serveur avec un système de grappe ou de load balancing... Maintenant si ce que je t'ai donné comme piste ne t'aide absolument pas parce que tu ne vois pas par où commencer revient me voir et on décortiquera le truc plus en profondeur.
__________________
Si je vous poste un bout de code pour vous aider, prenez bien en compte que je n'ai pas testé ce que je vous poste et que je vous donne les grandes lignes. Donc ne me dites pas : "Ca marche pas ton truc, y a une erreur..." |
|
|
00
|
|
|
#5 |
|
Membre du Club
![]() Aurélien BénéficeDéveloppeur Web Inscription : avril 2009 Messages : 95 ![]() |
hello (+1),
pour commencer, ce bout de code est dans une classe AS, pas mxml. C'est un joli singleton s'occupant des interactions client/serveur via différents canaux. Sinon, je pensais opter pour une solution similaire (mais très simplifiée) à ce que tu propose : - lors de l'instanciation du canal, faire un appel via mon premier canal vers une méthode "Acknowledge" qui renverrais juste un booléen par exemple. - poser un result handler et surtout un fault handler, qui en cas d'erreur s'occuperait de changer le canal en cours. Dans mon contexte, je ne cherche pas à faire du load balancing, c'est juste que pour des raisons pourries, on a deux points d'accès et on le change à la compilation suivant le contexte dans lequel le projet est déployé. En fait je posais cette question parce que ça m'aurais embêté de réinventer la roue si ce genre de mécanisme était déjà intégré dans le remoteObject comme il est déjà intégré dans le paramétrage de LiveCycle (via le remoting-config.xml je crois). Merci en tout cas, je marque le sujet comme résolu parce qu'à mon avis il n'y a pas de meilleure alternative. |
|
|
00
|
|
|
#6 |
|
Membre habitué
![]() |
Ok
Désolé de pas avoir vu mieux
__________________
Si je vous poste un bout de code pour vous aider, prenez bien en compte que je n'ai pas testé ce que je vous poste et que je vous donne les grandes lignes. Donc ne me dites pas : "Ca marche pas ton truc, y a une erreur..." |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com