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);
Neuverbindungsversuche werden gemäß des Intervallwerts für Neuverbindungen konstant durchgeführt. Wenn bei einem Neuverbindungsversuch der zugrundeliegende Kanal für den Produzenten nicht verbunden ist oder eine Verbindungsherstellung versucht, beginnt der Kanal einen Verbindungsversuch. Nachfolgende Verbindungsversuche vom Produzenten, die während des zugrundeliegenden Verbindungsversuchs vom Kanal durchgeführt werden, werden effektiv ignoriert, bis der ausstehende Verbindungsversuch des Kanals erfolgreich ist oder fehlschlägt.
Neuverbindungsversuche werden gemäß dieses Werts konstant durchgeführt. Wenn bei einem Neuverbindungsversuch der zugrundeliegende Kanal für den Produzenten nicht verbunden ist oder eine Verbindungsherstellung versucht, beginnt der Kanal einen Verbindungsversuch. Nachfolgende Verbindungsversuche vom Produzenten, die während des zugrundeliegenden Verbindungsversuchs vom Kanal durchgeführt werden, werden effektiv ignoriert, bis der ausstehende Verbindungsversuch des Kanals erfolgreich ist oder fehlschlägt.
Wenn das
Wenn für den ChannelSet URL-Lastverteilungs-Clustering verwendet wird (bei dem jeder Server eine eindeutige RTMP- oder HTTP-URL deklariert und die Ausfallsicherung den Client von einer URL zur nächsten leitet), fordert das ChannelSet bei der ersten Verbindung eines Kanals des ChannelSet automatisch alle Endpunkte aller Mitgliedskanäle im Cluster an. Außerdem weist der ChannelSet diese Ausfallsicherungs-URLs den einzelnen jeweiligen Kanälen zu. Das ermöglicht für Kanäle im ChannelSet eine individuelle Ausfallsicherung. Wenn die Ausfallsicherungsoptionen für einen bestimmten Kanal erschöpft sind, versucht der ChannelSet mit dem nächsten Kanal im Satz eine erneute Verbindung herzustellen.
Unabhängig vom Clustering, wenn bei einem Kanal keine Verbindung möglich ist oder die Konnektivität verloren geht, versucht der ChannelSet mit dem nächsten verfügbaren Kanal eine erneute Verbindung herzustellen. Dadurch kann der ChannelSet die Kanäle mit verschiedenen Protokollen, Ports usw. nach einem entsprechenden Kanal durchsuchen, der mit dem zugehörigen Endpunkt verbunden werden kann.
Das MessageAgent-Argument ist vorhanden, um älteres Abmeldeverhalten zu unterstützen, und Client-Code, der diese Methode aufruft, sollte keinen MessageAgent-Verweis übergeben. Es wird nur die
Diese Methode wird ebenfalls von den Dienstkomponenten der zugehörigen
Diese Eigenschaft ist hilfreich für Anwendungen, die eine Verbindung zu einem Remote-Host herstellen, um Aktualisierungen im Push-Verfahren zu erhalten ( also nicht, um Meldungen aktiv zu senden), und dabei auch dann über die Unterbrechung der Verbindung benachrichtigt werden möchten, wenn durch die Netzwerkebene eine derartige Benachrichtigung nicht zur Verfügung gestellt wird. Durch die Ausgabe von regelmäßigen Heartbeats kann der Client die Netzwerkebene zwingen, eine Zeitüberschreitung zu melden, wenn die zugrunde liegende Verbindung ohne Benachrichtigung unterbrochen wurde und die Anwendung ordnungsgemäß auf die Trennung reagieren kann.
Durch einen nicht positiven Wert werden Heartbeats an den Remote-Host deaktiviert. Der Standardwert ist 0. Dies bedeutet, dass Heartbeats deaktiviert sind. Wenn die Anwendung diesen Wert definiert, ist ein längeres vor einem kürzeren Intervall vorzuziehen, um den Remote-Host nicht unnötig zu belasten. Beispielsweise verwenden Keep-Alives mit TCP-Socket auf niedriger Ebene standardmäßig ein Intervall von zwei Stunden. Dieses Intervall ist länger als in den meisten Anwendungen, die Heartbeats aktivieren, verwendet. Das Beispiel macht jedoch deutlich, weshalb ein längeres Intervall zu bevorzugen ist.
Wenn der derzeit verbundene zugrundeliegende Kanal Abfrageanforderungen an den Remote-Host sendet, werden Heartbeats unterdrückt, da die regelmäßigen Abfrageanforderungen diese Funktion effizient übernehmen.
Der MultiTopicProducer löst ein MessageAckEvent oder MessageFaultEvent für jede gesendete Meldung aus, je nachdem, ob die ausgehende Meldung gesendet und erfolgreich verarbeitet wurde oder nicht.
<mx:Consumer Properties subscriptions=""an empty ArrayCollection of SubscriptionInfo objects" resubscribeAttempts="5" resubscribeInterval="5000" timestamp="No default." />]]>
Genauso wie ein normaler Verbraucher (Consumer) sendet MultiTopicConsumer Meldungen zum Abonnement bzw. zur Abonnementaufhebung, die ein MessageAckEvent oder MessageFaultEvent generieren, je nachdem, ob der Vorgang erfolgreich war. Nach einer Abonnierung löst MultiTopicConsumer ein MessageEvent für jede erhaltene Meldung aus.
Vor einem Aufruf der
Das Remote-Ziel muss den Wert des Selektor-Ausdrucks verstehen.
<mx:Consumer Properties resubscribeAttempts="5" resubscribeInterval="5000" selector="No default." timestamp="No default." />]]>
Vor einem Aufruf der
Das Remote-Ziel muss den Wert des Selektor-Ausdrucks verstehen.
<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." />
Hinweis: Nur für fortgeschrittene Benutzer. Verwenden Sie diese Klasse zum Erstellen von benutzerdefinierten Meldungsagenten wie die vorhandenen Producer- und Consumer-Klassen.
Hinweis: Adobe empfiehlt, statt dieser Methode die mx.messaging.ChannelSet.logout()-Methode zu verwenden.
<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); }
Die Versuche zur erneuten Abonnementerstellung werden gemäß des Intervallwerts für erneute Abonnements konstant durchgeführt. Wenn bei einem erneuten Abonnementherstellungsversuch der zugrundeliegende Kanal für den Verbraucher nicht verbunden ist oder eine Verbindungsherstellung versucht, beginnt der Kanal einen Verbindungsversuch. Nachfolgende Versuche zu erneutem Abonnement vom Verbraucher, die während des zugrundeliegenden Verbindungsversuchs vom Kanal durchgeführt werden, werden effektiv ignoriert, bis der ausstehende Verbindungsversuch des Kanals erfolgreich ist oder fehlschlägt.
Versuche zur erneuten Abonnementerstellung werden gemäß dieses Werts konstant durchgeführt. Wenn bei einem erneuten Abonnementherstellungsversuch der zugrundeliegende Kanal für den Verbraucher nicht verbunden ist oder eine Verbindungsherstellung versucht, beginnt der Kanal einen Verbindungsversuch. Nachfolgende Versuche zu erneutem Abonnement vom Verbraucher, die während des zugrundeliegenden Verbindungsversuchs vom Kanal durchgeführt werden, werden effektiv ignoriert, bis der ausstehende Verbindungsversuch des Kanals erfolgreich ist oder fehlschlägt.
Kanäle sind bestimmte protokollbasierte Übertragungen für Meldungen, die zwischen MessageAgents und Remote-Zielen gesendet werden. Vorkonfigurierte Kanäle werden in der Architektur mithilfe der
Kanäle stellen eine physische Verbindung zu einem Remote-Endpunkt dar. Kanäle werden standardmäßig von Zielen gemeinsam verwendet. Das bedeutet, dass ein Client, der verschiedene Ziele verwendet, den gleichen Kanal für die Kommunikation mit diesen Zielen verwenden kann.
Hinweis: Diese Klasse sollte nur von erfahrenen Benutzern verwendet werden. Verwenden Sie diese Klasse zum Erstellen von benutzerdefinierten Kanälen wie die vorhandenen Kanäle RTMPChannel, AMFChannel und HTTPChannel.
Die Channel-Klasse und deren Unterklassen geben einen Channel.Connect.Failed-Code aus, sobald in einem Kanal ein Problem beim Herstellen einer Verbindung zu einem Remote-Ziel auftritt. Ein AMFChannel-Objekt gibt einen Channel.Call.Failed-Code aus, wenn der Kanal bereits verbunden ist, jedoch einen Call.Failed-Code von der zugrunde liegenden NetConnection erhält.
Kanalunterklassen müssen die
Diese Eigenschaft wird automatisch gefüllt, wenn Clustering aktiviert ist. Wenn Sie kein Clustering verwenden, können Sie eigene Werte festlegen.
Hinweis: Unterklassen des Kanals müssen diese Methode überschreiben und einen String zurückgeben, der dem zugehörigen unterstützten Protokoll entspricht. Beispiele von unterstützten Protokollstrings sind „rtmp“, „http“ oder „https“.
Anforderungszeitlimits sind sehr hilfreich bei RPC-Stilmeldungen, für die eine Antwort vom Remote-Ziel erforderlich ist.