var producer:Producer = new Producer(); producer.destination = "TestTopic"; producer.addEventListener(PropertyChangeEvent.PROPERTY_CHANGE, handleConnect); producer.connect();
var producer:Producer = new Producer(); producer.destination = "TestTopic"; var msg:AsyncMessage = new AsyncMessage(); msg.body = "test message"; producer.send(msg);
Les tentatives de reconnexion sont effectuées à un rythme constant selon la valeur interne de reconnexion. Lorsqu’une tentative de reconnexion a lieu, si le canal sous-jacent de la classe Producer n’est pas connecté ou ne tente pas de se connecter, le canal commence une tentative de connexion. Les tentatives de reconnexion suivantes de la classe Producer qui se produisent alors que la tentative de connexion du canal sous-jacent est en attente sont ignorées jusqu’à ce que la tentative de connexion en attente du canal réussisse ou échoue.
Les tentatives de reconnexion sont effectuées à un rythme constant selon cette valeur. Lorsqu’une tentative de reconnexion a lieu, si le canal sous-jacent de la classe Producer n’est pas connecté ou ne tente pas de se connecter, le canal commence une tentative de connexion. Les tentatives de reconnexion suivantes de la classe Producer qui se produisent alors que la tentative de connexion du canal sous-jacent est en attente sont ignorées jusqu’à ce que la tentative de connexion en attente du canal réussisse ou échoue.
Si l’argument
Si la classe ChannelSet est clusterisée via l’équilibrage de charge URL (chaque serveur déclare une URL RTMP ou HTTP unique et le client bascule d’une URL à l’autre), la première fois qu’un canal dans la classe ChannelSet se connecte avec succès, la classe ChannelSet effectue automatiquement une demande pour toutes les extrémités à travers le cluster pour tous les canaux membres et assigne ces URL de basculement à chaque canal respectif. Ainsi, les canaux dans la classe ChannelSet peuvent basculer individuellement et lorsque les options de basculement d’un canal spécifique sont épuisées, la classe ChannelSet avance jusqu’au prochain canal dans le jeu pour essayer de se reconnecter.
Quelle que soit la clusterisation, si un canal ne peut pas se connecter ou perd sa connectivité, la classe ChannelSet avance jusqu’à son canal disponible suivant et tente de se reconnecter. Ainsi, la classe ChannelSet peut passer en revue les canaux utilisant différents protocoles, ports, etc., pour en rechercher un qui ne parvient pas à se connecter à son extrémité.
L’argument MessageAgent est présent pour prendre en charge le comportement de déconnexion existant et le code client qui invoque cette méthode ne doit pas transmettre une référence MessageAgent. Invoquez simplement
Cette méthode est également invoquée par les composants de services à partir de leurs méthodes
Cette propriété est très utile pour les applications qui se connectent à un hôte distant pour les mises à jour poussées reçues et n’envoyant pas activement de messages, mais que vous souhaitez être tenu informé de la perte de connexion même lorsque le calque de mise en réseau ne fournit pas les notifications directement. En émettant des battements périodiques, le client peut forcer le calque de mise en réseau pour signaler un délai si la connexion sous-jacente a abandonné sans notification et que l’application peut répondre à la déconnexion de façon appropriée.
Un valeur non positive désactive les battements vers l’hôte distant. La valeur par défaut est 0 indiquant que les battements sont désactivés. Si l’application définit cette valeur qui doit préférer un intervalle plus long plutôt que plus court, pour éviter de placer une charge inutile sur l’hôte distant. Pour illustrer cela, un socket TCP de bas niveau maintient en général par défaut à un intervalle de 2 heures. Cet intervalle est plus long que la plupart des applications permettant les battements ne seraient susceptibles d’utiliser, mais il sert de précédent évident pour préférer un intervalle plus long par rapport à un intervalle plus court.
Si le canal sous-jacent connecté actuellement émet des requêtes de sondage à l’hôte distant, les battements sont supprimés car les requêtes de sondage périodiques,prennent efficacement leur place.
La classe MultiTopicProducer distribue une classe MessageAckEvent ou MessageFaultEvent pour chaque message qu’elle envoie, selon que le message sortant ait été envoyé et traité avec succès ou non.
<mx:Consumer Properties subscriptions=""an empty ArrayCollection of SubscriptionInfo objects" resubscribeAttempts="5" resubscribeInterval="5000" timestamp="No default." />]]>
Comme la classe Consumer normale, la classe MultiTopicConsumer envoie des messages d’abonnement et de désabonnement qui génèrent un événement MessageAckEvent ou MessageFaultEvent selon que l’opération réussit ou échoue. Une fois abonnée, une classe MultiTopicConsumer distribue un événement MessageEvent pour chaque message qu’elle reçoit.
Avant un appel à la méthode
La destination distante doit comprendre la valeur de l’expression de sélecteur.
<mx:Consumer Properties resubscribeAttempts="5" resubscribeInterval="5000" selector="No default." timestamp="No default." />]]>
Avant un appel à la méthode
La destination distante doit comprendre la valeur de l’expression de sélecteur.
<mx:tagname]]>
Properties channelSet="No default." clientId="No default." connected="false" destination="No default." requestTimeout="-1" subtopic="No default." Events acknowledge="No default." channelConnect="No default." channelDisconnect="No default." channelFault="No default." fault="No default." propertyChange="No default." />
Remarque : pour une utilisation avancée uniquement. Utilisez cette classe pour créer des agents de messages personnalisés telles que les classes Producer et Consumer existantes.
Remarque : Adobe vous recommande d’utiliser la méthode mx.messaging.ChannelSet.logout() au lieu de cette méthode.
<mx:Producer Properties defaultHeaders="No default." />]]>
function sendMessage():void { var producer:Producer = new Producer(); producer.destination = "NASDAQ"; var msg:AsyncMessage = new AsyncMessage(); msg.headers.operation = "UPDATE"; msg.body = {"SYMBOL":50.00}; producer.send(msg); }
Les tentatives de réabonnement sont effectuées à un rythme constant selon la valeur interne de réabonnement. Lorsqu’une tentative de réabonnement a lieu, si le canal sous-jacent de la classe Consumer n’est pas connecté ou ne tente pas de se connecter, le canal commence une tentative de connexion. Les tentatives de réabonnement suivantes de la classe Consumer qui se produisent alors que la tentative de connexion du canal sous-jacent est en attente sont ignorées jusqu’à ce que la tentative de connexion en attente du canal réussisse ou échoue.
Les tentatives de réabonnement sont effectuées à un rythme constant selon cette valeur. Lorsqu’une tentative de réabonnement a lieu, si le canal sous-jacent de la classe Consumer n’est pas connecté ou ne tente pas de se connecter, le canal commence une tentative de connexion. Les tentatives de réabonnement suivantes de la classe Consumer qui se produisent alors que la tentative de connexion du canal sous-jacent est en attente sont ignorées jusqu’à ce que la tentative de connexion en attente du canal réussisse ou échoue.
Les canaux sont des conduits basés sur des protocoles spécifiques et destinés aux messages envoyés entre les classes MessageAgent et les destinations distantes. Les canaux préconfigurés sont obtenus au sein de la structure à l’aide de la méthode
Les canaux représentent une connexion physique à une extrémité distante. Par défaut, les canaux sont partagés à travers les destinations. Cela signifie qu’un client ciblant différentes destinations peut utiliser le même canal pour communiquer avec ces destinations.
Remarque : cette classe est destinée à une utilisation avancée uniquement. Utilisez cette classe pour créer des canaux personnalisés tels que les canaux RTMPChannel, AMFChannel et HTTPChannel existants.
Channel et ses sous-classes émettent un code Channel.Connect.Failed chaque fois qu’un problème se présente lors des tentatives de connexion d’un canal à une destination distante. Un objet AMFChannel émet un code Channel.Call.Failed code lorsque le canal est déjà connecté mais obtient un code Call.Failed de sa classe NetConnection sous-jacente.
Les sous-classes Channel doivent remplacer la méthode
Cette propriété est automatiquement renseignée lorsque le regroupement est activé. Si vous n’utilisez pas le regroupement, vous pouvez définir vos propres valeurs.
Remarque : les sous-classes Channel doivent remplacer cette méthode et renvoyer une chaîne qui représente leur protocole pris en charge. Par exemple, « rtmp », « http » ou « https » sont des chaînes de protocoles pris en charge.
Les délais d’attente de demandes sont très utiles pour l’échange de messages de style RPC nécessitant une réponse de la destination distante.