2009-10-21 7 views
1

J'ai bricolé avec Flex RemoteObjects, et j'ai constaté qu'ils ne se comportaient pas très bien en ce qui concerne le temps imparti. D'abord, je ne peux pas comprendre comment régler un délai d'attente sur "connecter". Je sais que je peux définir requstTimeout, qui expirera correctement après une poignée de main initiale ... Mais si le serveur ne prend pas la main, la connexion ne temporise pas (par exemple, le serveur accepte la connexion, puis ne fait rien, le client juste être laissé pendre).Temporisations Flex RemoteObject?

Ensuite, lorsqu'un feu requestTimeout se déclenche (expirant la requête), Flex ne prend aucune mesure pour démolir la connexion - il la laisse simplement suspendue (pas de RST ou similaire). Clairement, c'est plus qu'un peu indésirable. Est-il possible de supprimer explicitement la connexion après le timeout?

J'utilise RemoteObject comme ceci:

<RemoteObject id="foo" endpoint="http://bar" requestTimeout="42"> 
    <method … /> 
</RemoteObject> 

Répondre

3

Je crois que vous pouvez écouter un FaultEvent (qui est déclenchée par le délai d'attente) et ont la connexion tué dans le gestionnaire. Sans plonger dans la source, je ne sais pas trop comment régler le délai d'attente de connexion.

+0

Merci pour la réponse. J'écoute déjà l'événement fault ... Mais je ne peux pas comprendre comment, étant donné un 'FaultEvent' (ou même le' RemoteObject' qui l'a causé) pour fermer explicitement la conneciton. –

+0

En outre, j'ai constaté que lorsque l'autre extrémité expire (et envoie un 'FIN'), je * ne * obtiens aucun type d'événement ... –

+0

RemoteObjects a une fonction diconnect(), je suppose que cela fermera le connexion. Oh, et je pense avoir trouvé le connectTimeout. Regardez sous les objets Channel et ChannelSet, ils sont accessibles via RemoteObject. Le canal possède également un événement channelDisconnect. J'espère que cela répond à tout. – CookieOfFortune