2009-08-14 7 views
0

J'utilise la messagerie dans Flex-BlazeDS. Lorsque le client AIR démarre, il se connecte à une destination et à un sous-thème spécifique. Au cours de l'exécution, l'utilisateur peut utiliser une zone de liste déroulante pour vous abonner à différents ensembles de données en direct à venir dans cet événement de changement de zone de liste déroulante change le sous-thème par:Changement de sous-thèmes dans BlazeDS et Flex

messagingConsumer.subtopic = subtopicComboBox.selectedLabel; 
messagingProducer.subtopic = subtopicComboBox.selectedLabel; 
messagingConsumer.subscribe(); 

Un message est alors envoyé au serveur avec le nouveau sous-thème nom aussi bien que le serveur sait envoyer à un nouveau sous-thème.

Tout ce mécanisme semble très glitchy et je me demande si quelqu'un d'autre a essayé cela et a réussi? La plupart du temps cela fonctionne la première fois et après cela les messages ne sont pas envoyés ou je reçois des erreurs de serveur comme:

[BlazeDS] Le point de terminaison avec l'identificateur 'my-streaming-amf' ne peut pas traiter la requête de diffusion comme étant la L'ID FlexClient 'B07F3285-A408-816E-4697-F13F9B17E32C n'est pas valide ou le FlexClient avec cet ID n'est pas valide.

Parfois aussi, lorsque je change de sous-thèmes, FlexSession et FlexClient sont détruits au lieu de simplement MessageClient. Une fois que la FlexSession est détruite, elle perturbe toutes sortes de choses, y compris la déconnexion de l'utilisateur. Peut-être que je suis trop compliquer les choses en changeant des sujets secondaires pour écouter différents ensembles de données en direct, si quelqu'un a d'autres idées sur la façon d'effectuer un changement dynamique des destinations ou sous-rubriques, veuillez les lister.

Répondre

3

Vous pouvez essayer de vous désabonner avant de modifier le sous-sujet et de vous réabonner.

+0

oui qui l'a fait. En fait, je suis allé un peu plus loin et ai appelé disconnect() sur le consommateur et le producteur et ensuite créé une nouvelle instance de chacun. Fonctionne maintenant. – Nick

Questions connexes