Paket | flash.net |
Klasse | public class XMLSocket |
Vererbung | XMLSocket EventDispatcher Object |
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
- XML-Nachrichten werden über eine TCP/IP-Streaming-Socket-Verbindung im Vollduplexmodus gesendet.
- Jede XML-Nachricht ist ein vollständiges XML-Dokument, das mit einem Null-Byte (0) abgeschlossen wird.
- Es kann eine unbegrenzte Anzahl von XML-Nachrichten über eine einzelne XMLSocket-Verbindung gesendet und empfangen werden.
Die Einrichtung eines Servers zur Kommunikation mit einem XMLSocket-Objekt ist oft recht anspruchsvoll. Wenn Ihre Anwendung keine Interaktionen in Echtzeit erfordert, verwenden Sie die URLLoader-Klasse anstelle der XMLSocket-Klasse.
Um die Methoden der XMLSocket-Klasse zu verwenden, verwenden Sie zuerst den Konstruktor new XMLSocket
, um ein XMlSocket-Objekt zu erstellen.
SWF-Dateien in der lokalen Dateisystem-Sandbox dürfen keine Sockets verwenden.
Die Socket-Richtliniendateien auf dem Ziel-Host legen sowohl den Host fest, von dem SWF-Dateien Socket-Verbindungen herstellen können, als auch die Ports, für welche die Verbindungen erstellt werden. Die Sicherheitsanforderungen für Socket-Richtliniendateien wurden in den letzten Versionen von Flash Player verschärft. Adobe empfiehlt für alle Versionen von Flash Player die Verwendung von Socket-Richtliniendateien. In einigen Fällen ist eine Socket-Richtliniendatei unbedingt erforderlich. Deshalb sollten Sie beim Verwenden von XML-Socket-Objekten sicherstellen, dass der Ziel-Host ggf. eine Socket-Richtliniendatei bereitstellt.
Die folgende Liste fasst die Anforderungen für Socket-Richtliniendateien für die verschiedenen Versionen von Flash Player zusammen:
- In Flash Player 9.0.124.0 und höher sind für XMLSocket-Verbindungen Socket-Richtliniendateien erforderlich. Das heißt, dass eine Socket-Richtliniendatei für den Ziel-Host erforderlich ist, unabhängig von dem für die Verbindung ausgewählten Port. Sie ist sogar dann erforderlich, wenn Sie eine Verbindung zu einem Port auf dem gleichen Host herstellen, der die SWF-Dateien bereitstellt.
- Wenn Sie unter Flash Player Version 9.0.115.0 und früher eine Verbindung zu einer Portnummer kleiner als 1024 herstellen möchten, ist eine Socket-Richtliniendatei erforderlich. Das Gleiche gilt, wenn Sie eine Verbindung zu einem anderem Host herstellen möchten als dem, der die SWF-Dateien bereitstellt.
- Selbst wenn keine Socket-Richtliniendatei erforderlich ist, wird in Flash Player 9.0.115.0 während der Verwendung des Flash Debug Players eine Warnung angezeigt, wenn der Ziel-Host keine Socket-Richtliniendatei bereitstellt.
In Adobe AIR unterliegt Inhalt in der Sicherheitssandbox der Anwendung
(Inhalt, der mit der AIR-Anwendung installiert wird) nicht diesen Sicherheitseinschränkungen.
Weitere Informationen zum Thema Sicherheit finden Sie im Flash Player Developer Center im Abschnitt Sicherheit.
Verwandte API-Elemente
Eigenschaft | Definiert von | ||
---|---|---|---|
connected : Boolean [schreibgeschützt]
Gibt an, ob dieses XMLSocket-Objekt zurzeit verbunden ist. | XMLSocket | ||
constructor : Object
Ein Verweis auf das Klassenobjekt oder die Konstruktorfunktion für eine angegebene Objektinstanz. | Object | ||
timeout : int
Gibt die Anzahl der Millisekunden an, die auf eine Verbindung gewartet werden soll. | XMLSocket |
Methode | Definiert von | ||
---|---|---|---|
Erstellt ein neues XMLSocket-Objekt. | XMLSocket | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registriert ein Ereignis-Listener-Objekt bei einem EventDispatcher-Objekt, sodass der Listener über ein Ereignis benachrichtigt wird. | EventDispatcher | ||
Schließt die durch das XMLSocket-Objekt angegebene Verbindung. | XMLSocket | ||
Stellt über den angegebenen TCP-Port eine Verbindung zum angegebenen Internet-Host her. | XMLSocket | ||
Sendet ein Ereignis in den Ereignisablauf. | EventDispatcher | ||
Überprüft, ob das EventDispatcher-Objekt Listener für einen bestimmten Ereignistyp registriert hat. | EventDispatcher | ||
Gibt an, ob für ein Objekt eine bestimmte Eigenschaft definiert wurde. | Object | ||
Gibt an, ob eine Instanz der Object-Klasse in der Prototypkette des Objekts vorhanden ist, das als Parameter angegeben wurde. | Object | ||
Gibt an, ob die angegebene Eigenschaft vorhanden ist und durchlaufen werden kann. | Object | ||
Entfernt einen Listener aus dem EventDispatcher-Objekt. | EventDispatcher | ||
Wandelt das mit dem Parameter „object“ angegebene XML-Objekt bzw. die angegebenen Daten in einen String um und übermittelt diesen gefolgt von einem Null-Byte (0) an den Server. | XMLSocket | ||
Legt die Verfügbarkeit einer dynamischen Eigenschaft für Schleifenoperationen fest. | Object | ||
Gibt die Stringdarstellung dieses Objekts zurück, formatiert entsprechend den Konventionen des Gebietsschemas. | Object | ||
Gibt das angegebene Objekt als String zurück. | Object | ||
Gibt den Grundwert des angegebenen Objekts zurück. | Object | ||
Überprüft, ob bei diesem EventDispatcher-Objekt oder bei einem seiner Vorgänger ein Ereignis-Listener für einen bestimmten Ereignistyp registriert ist. | EventDispatcher |
Ereignis | Übersicht | Definiert von | ||
---|---|---|---|---|
[broadcast event] Wird ausgelöst, wenn Flash Player oder eine AIR-Anwendung den Betriebssystemfokus erhält und aktiv wird. | EventDispatcher | |||
Wird ausgelöst, wenn der Server die Socketverbindung schließt. | XMLSocket | |||
Wird nach dem erfolgreichen Aufruf der Methode „XMLSocket.connect()“ ausgelöst. | XMLSocket | |||
Wird nach dem Senden oder Empfangen von unformatierten Daten ausgelöst. | XMLSocket | |||
[broadcast event] Wird ausgelöst, wenn Flash Player- oder die AIR-Anwendung den Fokus verliert und inaktiv wird. | EventDispatcher | |||
Wird beim Auftreten eines I/O-Fehlers ausgelöst, durch den ein Sende- oder Empfangsvorgang fehlschlägt. | XMLSocket | |||
Wird ausgelöst, wenn mit einem Aufruf der Methode „XMLSocket.connect()“ versucht wird, eine Verbindung zu einem Server außerhalb der Sicherheitssandbox des Aufrufers oder zu einem Port mit einer niedrigeren Nummer als 1024 herzustellen. | XMLSocket |
connected | Eigenschaft |
connected:Boolean
[schreibgeschützt] Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Gibt an, ob dieses XMLSocket-Objekt zurzeit verbunden ist. Sie können sich auch für die Ereignisse connect
und ioError
registrieren, um zu überprüfen, ob die Verbindung erfolgreich hergestellt werden konnte.
Implementierung
public function get connected():Boolean
Verwandte API-Elemente
timeout | Eigenschaft |
timeout:int
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Gibt die Anzahl der Millisekunden an, die auf eine Verbindung gewartet werden soll.
Wenn die Verbindung nicht innerhalb der festgelegten Zeit hergestellt werden kann, schlägt der Verbindungsaufbau fehl. Der Standardwert ist 20.000 (zwanzig Sekunden).
Implementierung
public function get timeout():int
public function set timeout(value:int):void
XMLSocket | () | Konstruktor |
public function XMLSocket(host:String = null, port:int = 0)
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Erstellt ein neues XMLSocket-Objekt. Wenn keine Parameter angegeben werden, wird ein Socket mit getrennter Verbindung erstellt. Wenn Parameter angegeben werden, wird versucht, eine Verbindung zu dem angegebenen Host und Port herzustellen.
Hinweis: Es wird unbedingt empfohlen, das Konstruktor-Formular ohne Parameter zu verwenden, danach die Ereignis-Listener hinzuzufügen und danach die connect
-Methode mit host
- und port
-Parametern aufzurufen. Diese Abfolge stellt sicher, dass alle Ereignis-Listener ordnungsgemäß funktionieren.
host:String (default = null ) — Ein vollständig qualifizierter DNS-Domänenname oder eine IP-Adresse im Format .222.333.444. In Flash Player 9.0.115.0, AIR 1.0 und späteren Versionen können Sie IPv6-Adressen festlegen, z. B. rtmp://[2001:db8:ccc3:ffff:0:444d:555e:666f]. Sie können auch null angeben, um eine Verbindung zum Hostserver herzustellen, auf dem die SWF-Datei gespeichert ist. Wenn die aufrufende SWF-Datei in einem Webbrowser ausgeführt wird, muss sich der host in derselben Domäne befinden wie die SWF-Datei.
| |
port:int (default = 0 ) — Die zur Herstellung einer Verbindung verwendete TCP-Portnummer auf dem Ziel-Host. In Flash Player 9.0.124.0 und späteren Versionen muss der Ziel-Host eine Socket-Richtliniendatei bereitstellen, die festlegt, dass Socket-Verbindungen zum festgelegten Port vom Host zugelassen sind, der die SWF-Datei bereitstellt. In älteren Versionen von Flash Player ist eine Socket-Richtliniendatei nur erforderlich, wenn Sie eine Verbindung zu einer Portnummer kleiner 1024 herstellen möchten oder wenn Sie eine Verbindung mit einem Host herstellen möchten, der nicht der gleiche ist, der auch die SWF-Datei bereitstellt.
|
Verwandte API-Elemente
close | () | Methode |
public function close():void
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Schließt die durch das XMLSocket-Objekt angegebene Verbindung. Das Ereignis close
wird nur ausgelöst, wenn der Server die Verbindung schließt. Es wird nicht ausgelöst, wenn Sie die Methode close()
aufrufen.
Verwandte API-Elemente
connect | () | Methode |
public function connect(host:String, port:int):void
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Stellt über den angegebenen TCP-Port eine Verbindung zum angegebenen Internet-Host her.
Wenn Sie für den Parameter host
den Wert null
angeben, wird der Host kontaktiert, auf dem die Datei gespeichert ist, die XMLSocket.connect()
aufgerufen hat. Wenn die aufrufende Datei z. B. von www.adobe.com heruntergeladen wurde und für den host-Parameter null
angegeben wurde, bedeutet das, dass Sie eine Verbindung zu www.adobe.com herstellen.
Sie können eine Datei daran hindern, diese Methode aufzurufen, indem Sie auf der HTML-Seite, die den SWF-Inhalt enthält, den Parameter allowNetworking
der Tags object
und embed
festlegen.
Weitere Informationen finden Sie im Flash Player Developer Center im Abschnitt Sicherheit.
Parameter
host:String — Ein vollständig qualifizierter DNS-Domänenname oder eine IP-Adresse im Format 111.222.333.444. Sie können auch null angeben, um eine Verbindung zum Hostserver herzustellen, auf dem die SWF-Datei gespeichert ist. Wenn die aufrufende Datei eine SWF-Datei ist, die in einem Webbrowser ausgeführt wird, muss host in der gleichen Domäne wie die Datei sein.
| |
port:int — Die zur Herstellung einer Verbindung verwendete TCP-Portnummer auf dem Ziel-Host. In Flash Player 9.0.124.0 und späteren Versionen muss der Ziel-Host eine Socket-Richtliniendatei bereitstellen, die festlegt, dass Socket-Verbindungen zum festgelegten Port vom Host zugelassen sind, der die SWF-Datei bereitstellt. In älteren Versionen von Flash Player ist eine Socket-Richtliniendatei nur erforderlich, wenn Sie eine Verbindung zu einer Portnummer kleiner 1024 herstellen möchten oder wenn Sie eine Verbindung mit einem Host herstellen möchten, der nicht der gleiche ist, der auch die SWF-Datei bereitstellt.
|
Ereignisse
securityError: — Bei einem Verbindungsvorgang wurde versucht, eine Verbindung zu einem Host außerhalb der Sicherheitssandbox des Aufrufers oder zu einem Port, der eine Socket-Richtliniendatei erfordert, herzustellen. Umgehen Sie diese Probleme, indem Sie auf dem Ziel-Host eine Socket-Richtliniendatei verwenden.
| |
data: — Wird beim Empfang von unformatierten Daten ausgelöst.
| |
connect: — Wird ausgelöst, wenn eine Netzwerkverbindung hergestellt wurde.
|
Auslöser
SecurityError — Über lokale nicht vertrauenswürdige Dateien kann keine Verbindung mit dem Internet hergestellt werden. Umgehen Sie diese Beschränkung, indem Sie die Datei neu als lokal mit Netzwerk oder als vertrauenswürdig klassifizieren.
| |
SecurityError — Sie können für eine Socketverbindung keinen Port mit einer höheren Nummer als 65535 angeben.
|
Verwandte API-Elemente
send | () | Methode |
public function send(object:*):void
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Wandelt das mit dem Parameter object
angegebene XML-Objekt bzw. die angegebenen Daten in einen String um und übermittelt diesen gefolgt von einem Null-Byte (0) an den Server. Wenn es sich bei object
um ein XML-Objekt handelt, enthält der String die XML-Textdarstellung des XML-Objekts. Die send-Operation ist asynchron; es erfolgt zwar sofort eine Rückgabe, die Daten werden aber möglicherweise zu einem späteren Zeitpunkt gesendet. Die Methode XMLSocket.send()
gibt keinen Wert zurück, der angibt, ob die Daten erfolgreich übermittelt wurden.
Wenn Sie das XMLSocket-Objekt nicht über XMLSocket.connect()
mit dem Server verbinden, schlägt der XMLSocket.send()
-Vorgang fehl.
Parameter
object:* — Ein XML-Objekt oder andere Daten zur Übermittlung an den Server.
|
Auslöser
IOError — Das XMLSocket-Objekt ist nicht mit dem Server verbunden.
|
Verwandte API-Elemente
close | Ereignis |
flash.events.Event
Eigenschaft Event.type =
flash.events.Event.CLOSE
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Wird ausgelöst, wenn der Server die Socketverbindung schließt. Das Ereignis close
wird nur ausgelöst, wenn der Server die Verbindung schließt. Es wird nicht ausgelöst, wenn Sie die Methode XMLSocket.close()
aufrufen.
Event.CLOSE
-Konstante definiert den Wert der type
-Eigenschaft eines close
-Ereignisobjekts.
Dieses Ereignis verfügt über die folgenden Eigenschaften:
Eigenschaft | Wert |
---|---|
bubbles | false |
cancelable | false . Es gibt kein Standardverhalten, das abgebrochen werden kann. |
currentTarget | Das Objekt, welches das Ereignisobjekt aktiv mit einem Ereignis-Listener verarbeitet. |
target | Das Objekt, dessen Verbindung geschlossen wurde. |
connect | Ereignis |
flash.events.Event
Eigenschaft Event.type =
flash.events.Event.CONNECT
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Wird nach dem erfolgreichen Aufruf der Methode XMLSocket.connect()
ausgelöst.
Event.CONNECT
-Konstante definiert den Wert der type
-Eigenschaft eines connect
-Ereignisobjekts.
Dieses Ereignis verfügt über die folgenden Eigenschaften:
Eigenschaft | Wert |
---|---|
bubbles | false |
cancelable | false . Es gibt kein Standardverhalten, das abgebrochen werden kann. |
currentTarget | Das Objekt, welches das Ereignisobjekt aktiv mit einem Ereignis-Listener verarbeitet. |
target | Das Socket- oder XMLSocket-Objekt, das eine Netzwerkverbindung hergestellt hat. |
data | Ereignis |
flash.events.DataEvent
Eigenschaft DataEvent.type =
flash.events.DataEvent.DATA
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Wird nach dem Senden oder Empfangen von unformatierten Daten ausgelöst.
Definiert den Wert der Eigenschafttype
eines data
-Ereignisobjekts.
Dieses Ereignis verfügt über die folgenden Eigenschaften:
Eigenschaft | Wert |
---|---|
bubbles | false |
cancelable | false . Es gibt kein Standardverhalten, das abgebrochen werden kann. |
currentTarget | Das Objekt, welches das Ereignisobjekt aktiv mit einem Ereignis-Listener verarbeitet. |
data | Die in Flash Player oder Adobe AIR geladenen Grunddaten. |
target | Das XMLSocket-Objekt, das Daten empfängt. |
ioError | Ereignis |
flash.events.IOErrorEvent
Eigenschaft IOErrorEvent.type =
flash.events.IOErrorEvent.IO_ERROR
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Wird beim Auftreten eines I/O-Fehlers ausgelöst, durch den ein Sende- oder Empfangsvorgang fehlschlägt.
Definiert den Wert der Eigenschafttype
eines ioError
-Ereignisobjekts.
Dieses Ereignis verfügt über die folgenden Eigenschaften:
Eigenschaft | Wert |
---|---|
bubbles | false |
cancelable | false . Es gibt kein Standardverhalten, das abgebrochen werden kann. |
currentTarget | Das Objekt, welches das Ereignisobjekt aktiv mit einem Ereignis-Listener verarbeitet. |
errorID | Die Referenznummer des spezifischen Fehlers (nur AIR). |
target | Das Netzwerkobjekt, bei dem der Eingabe/Ausgabe-Fehler auftritt. |
text | Der als Fehlermeldung anzuzeigende Text. |
securityError | Ereignis |
flash.events.SecurityErrorEvent
Eigenschaft SecurityErrorEvent.type =
flash.events.SecurityErrorEvent.SECURITY_ERROR
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Wird ausgelöst, wenn mit einem Aufruf der Methode XMLSocket.connect()
versucht wird, eine Verbindung zu einem Server außerhalb der Sicherheitssandbox des Aufrufers oder zu einem Port mit einer niedrigeren Nummer als 1024 herzustellen.
SecurityErrorEvent.SECURITY_ERROR
definiert den Wert der type
-Eigenschaft eines securityError
-Ereignisobjekts.
Dieses Ereignis verfügt über die folgenden Eigenschaften:
Eigenschaft | Wert |
---|---|
bubbles | false |
cancelable | false . Es gibt kein Standardverhalten, das abgebrochen werden kann. |
currentTarget | Das Objekt, welches das Ereignisobjekt aktiv mit einem Ereignis-Listener verarbeitet. |
target | Das Netzwerkobjekt, das den Sicherheitsfehler ausgibt. |
text | Der als Fehlermeldung anzuzeigende Text. |
Verwandte API-Elemente
- Der XMLSocketExample-Konstruktor erstellt eine XMLSocket-Instanz mit dem Namen
socket
, übergibtsocket
anConfigureListeners()
(siehe unten) und ruft dann die Methodeconnect()
für die XMLSocket-Verbindung auf, wobei der Hostname „localhost“ und die Portnummer8080
verwendet werden. - Daraufhin wird die Methode
configureListeners()
aufgerufen, die für jedes unterstützte XMLSocket-Ereignis Listener hinzufügt:closeHandler()
: Listener für das Ereignisclose
, das nach dem Schließen der Netzwerkverbindung ausgelöst wird.connectHandler()
: Listener für das Ereignisconnect
, das nach dem Herstellen der Netzwerkverbindung ausgelöst wird.dataHandler()
: Listener für diedata
-Ereignisse, die jedes Mal ausgelöst werden, wenn über die XMLSocket-Verbindung neue Daten empfangen werden.progressHandler()
: Listener für dieprogress
-Ereignisse, die beim Aufruf vonsend()
und während des Sendevorgangs ausgelöst werden.securityErrorHandler()
: Listener fürsecurityError
-Ereignisse, die bei dem Versuch ausgelöst werden, mit der falschen Sicherheitseinstellung für die lokale Wiedergabe oder über einen Port mit einer niedrigeren Nummer als 1024 auf den XMLSocket-Server zuzugreifen.ioErrorHandler()
: Listener fürioError
-Ereignisse, die ausgelöst werden, wenn das Senden oder Empfangen von Daten fehlschlägt.
Hinweise:
- Sie müssen zur Kompilierung der SWF-Datei die Option „Sicherheit bei lokaler Wiedergabe“ auf „Nur auf Netzwerk zugreifen“ setzen.
- Damit dieses Beispiel funktioniert, benötigen Sie einen Server, der in Ihrer Domäne über Port 8080 läuft.
- Wenn Sie Flash Player 9.0.124.0 oder höher ausführen, müssen Sie auf Ihrem Server eine Socket-Richtliniendatei ablegen, die Socket-Verbindungen von Ihrer Domäne zu Port 8080 zulässt. Informationen zum Bereitstellen von Socket-Richtliniendateien finden Sie im Flash Player Developer Center im Abschnitt Einrichten eines Servers für Socket-Richtliniendateien.
package { import flash.display.Sprite; import flash.events.*; import flash.net.XMLSocket; public class XMLSocketExample extends Sprite { private var hostName:String = "localhost"; private var port:uint = 8080; private var socket:XMLSocket; public function XMLSocketExample() { socket = new XMLSocket(); configureListeners(socket); if (hostName && port) { socket.connect(hostName, port); } } public function send(data:Object):void { socket.send(data); } private function configureListeners(dispatcher:IEventDispatcher):void { dispatcher.addEventListener(Event.CLOSE, closeHandler); dispatcher.addEventListener(Event.CONNECT, connectHandler); dispatcher.addEventListener(DataEvent.DATA, dataHandler); dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler); dispatcher.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); } private function closeHandler(event:Event):void { trace("closeHandler: " + event); } private function connectHandler(event:Event):void { trace("connectHandler: " + event); } private function dataHandler(event:DataEvent):void { trace("dataHandler: " + event); } private function ioErrorHandler(event:IOErrorEvent):void { trace("ioErrorHandler: " + event); } private function progressHandler(event:ProgressEvent):void { trace("progressHandler loaded:" + event.bytesLoaded + " total: " + event.bytesTotal); } private function securityErrorHandler(event:SecurityErrorEvent):void { trace("securityErrorHandler: " + event); } } }
Tue Jun 12 2018, 10:04 AM Z