Paketflash.net
Klassepublic class XMLSocket
VererbungXMLSocket Inheritance EventDispatcher Inheritance Object

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

Die XMLSocket-Klasse implementiert Clientsockets, über die der Computer, auf dem Flash Player ausgeführt wird, mit einem durch eine IP-Adresse oder einen Domänennamen identifizierten Servercomputer kommunizieren kann. Die XMLSocket-Klasse ist für Client-Server-Anwendungen nützlich, die geringe Latenzzeiten erfordern, beispielsweise Echtzeit-Chat-Systeme. Eine herkömmliche HTTP-Chat-Lösung fragt den Server in kurzen Abständen ab und lädt neue Nachrichten mithilfe einer HTTP-Anforderung. Im Gegensatz dazu unterhält eine XMLSocket-basierte Chat-Lösung eine offene Verbindung zum Server, damit dieser neu eingegangene Nachrichten sofort und ohne Anforderung vom Client senden kann. Um die XMLSocket-Klasse verwenden zu können, muss auf dem Servercomputer ein Daemon ausgeführt werden, der das von der XMLSocket-Klasse verwendete Protokoll verarbeiten kann. Das Protokoll wird in der folgenden Liste beschrieben:

Die Methode XMLSocket.connect() kann nur Verbindungen zu TCP-Portnummern größer oder gleich 1024 herstellen. Als Folge dieser Einschränkung müssen den Serverdaemonprogrammen, die mit dem XMLSocket-Objekt kommunizieren, ebenfalls Portnummern größer oder gleich 1024 zugeordnet sein. Portnummern unter 1024 werden häufig von Systemdiensten wie FTP, Telnet und HTTP verwendet, und die Verwendung dieser Ports durch XMLSocket-Objekte ist aus Sicherheitsgründen nicht zulässig. Durch Einschränkung der verfügbaren Portnummern lässt sich das Risiko verringern, dass in ungeeigneter oder missbräuchlicher Weise auf diese Ressourcen zugegriffen wird.

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. Bevor Sie die Methoden der XMLSocket-Klasse verwenden können, müssen Sie mit dem Konstruktor new XMLSocket ein neues XMLSocket-Objekt erstellen.

Beachten Sie bei Verwendung dieser Klasse das folgende Sicherheitsmodell von Flash Player:

Weitere Informationen finden Sie in den folgenden Abschnitten:

Beispiele anzeigen

Siehe auch

flash.net.URLLoader.load()
flash.net.URLLoader
Socketverbindungen


Öffentliche Eigenschaften
 EigenschaftDefiniert von
  connected : Boolean
[read-only] Gibt an, ob dieses XMLSocket-Objekt zurzeit verbunden ist.
XMLSocket
 Inheritedconstructor : Object
Ein Verweis auf das Klassenobjekt oder die Konstruktorfunktion für eine angegebene Objektinstanz.
Object
 Inheritedprototype : Object
[static] Ein Verweis auf das Prototypobjekt einer Klasse oder eines Funktionsobjekts.
Object
Öffentliche Methoden
 MethodeDefiniert von
  
XMLSocket(host:String = null, port:int = 0)
Erstellt ein neues XMLSocket-Objekt.
XMLSocket
 Inherited
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
  
connect(host:String, port:int):void
Stellt über den angegebenen TCP-Port eine Verbindung zum angegebenen Internet-Host her.
XMLSocket
 Inherited
Sendet ein Ereignis in den Ereignisablauf.
EventDispatcher
 Inherited
Überprüft, ob das EventDispatcher-Objekt Listener für einen bestimmten Ereignistyp registriert hat.
EventDispatcher
 Inherited
Gibt an, ob für ein Objekt eine bestimmte Eigenschaft definiert wurde.
Object
 Inherited
Gibt an, ob eine Instanz der Object-Klasse in der Prototypkette des Objekts vorhanden ist, das als Parameter angegeben wurde.
Object
 Inherited
Gibt an, ob die angegebene Eigenschaft vorhanden ist und durchlaufen werden kann.
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Entfernt einen Listener aus dem EventDispatcher-Objekt.
EventDispatcher
  
send(object:*):void
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
 Inherited
Legt die Verfügbarkeit einer dynamischen Eigenschaft für Schleifenoperationen fest.
Object
 Inherited
Gibt das angegebene Objekt als String zurück.
Object
 Inherited
Gibt den Grundwert des angegebenen Objekts zurück.
Object
 Inherited
Überprüft, ob bei diesem EventDispatcher-Objekt oder bei einem seiner vorangegangenen Elementen ein Ereignis-Listener für einen bestimmten Ereignistyp registriert ist.
EventDispatcher
Ereignisse
 EreignisÜbersicht Definiert von
 Inherited Wird ausgelöst, wenn Flash Player 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
 Inherited Wird ausgelöst, wenn Flash Player den Betriebssystemfokus verliert und inaktiv wird.EventDispatcher
   Wird beim Auftreten eines Eingabe/Ausgabe-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 Sicherheits-Sandbox des Aufrufers oder zu einem Port mit einer niedrigeren Nummer als 1024 herzustellen.XMLSocket
Eigenschaftsdetail
connectedEigenschaft
connected:Boolean  [read-only]

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

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

Siehe auch

Konstruktordetail
XMLSocket()Konstruktor
public function XMLSocket(host:String = null, port:int = 0)

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

Erstellt ein neues XMLSocket-Objekt. Das XMLSocket-Objekt ist zunächst nicht mit einem Server verbunden. Sie müssen die Methode XMLSocket.connect() aufrufen, um das Objekt mit einem Server zu verbinden.

Parameter
host:String (default = null) — Ein vollständig qualifizierter DNS-Domänenname oder eine IP-Adresse im Format aaa.bbb.ccc.ddd. Sie können auch null angeben, um eine Verbindung zum Hostserver herzustellen, auf dem die SWF-Datei gespeichert ist. Wenn die SWF-Datei, die diesen Aufruf ausgibt, in einem Webbrowser ausgeführt wird, muss sich host in derselben Domäne befinden wie die SWF-Datei.
 
port:int (default = 0) — Die zur Herstellung einer Verbindung verwendete TCP-Portnummer auf dem Host. Die Portnummer muss größer oder gleich 1024 sein, es sei denn, es wird eine Richtliniendatei verwendet.

Siehe auch

Methodendetail
close()Methode
public function close():void

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

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.

Siehe auch

connect()Methode 
public function connect(host:String, port:int):void

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

Stellt über den angegebenen TCP-Port eine Verbindung zum angegebenen Internet-Host her. Die Portnummer für die Verbindung muss größer oder gleich 1024 sein, es sei denn, Sie verwenden eine Richtliniendatei.

Wenn Sie für den Parameter host den Wert null angeben, wird der Host kontaktiert, auf dem die SWF-Datei gespeichert ist, die XMLSocket.connect() aufgerufen hat. Wenn die SWF-Datei beispielsweise von www.adobe.com heruntergeladen wurde, entspricht die Angabe von null für den host-Parameter der Eingabe der IP-Adresse für www.adobe.com.

Bei SWF-Dateien, die in einer vor Flash Player 7 liegenden Player-Version laufen, muss sich host in derselben Superdomäne befinden, wie die SWF-Datei, die diesen Aufruf ausgibt. Beispiel: Eine SWF-Datei unter www.adobe.com kann Variablen an eine SWF-Datei senden bzw. von einer SWF-Datei empfangen, die sich unter store.adobe.com befindet, da die Superdomäne adobe.com dieselbe ist.

Bei SWF-Dateien einer beliebigen Version, die in Flash Player 7 oder einer neueren Version ausgeführt werden, muss sich host in exakt derselben Domäne befinden. Beispiel: Eine SWF-Datei unter www.adobe.com, die für Flash Player 5 veröffentlicht wurde, aber in Flash Player 7 oder höher ausgeführt wird, kann nur Variablen an SWF-Dateien senden bzw. von SWF-Dateien empfangen, die sich ebenfalls unter www.adobe.com befinden. Wenn Sie beabsichtigen, Variablen von einer anderen Domäne zu empfangen bzw. an eine andere Domäne zu senden, können Sie eine domänenübergreifende Richtliniendatei auf den Hostserver der SWF-Datei laden, auf die zugegriffen werden soll.

Sie können eine SWF-Datei daran hindern, diese Methode aufzurufen, indem Sie in der HTML-Seite, die den SWF-Inhalt enthält, den Parameter allowNetworking der Tags object und embed festlegen.

Weitere Informationen finden Sie in den folgenden Abschnitten:

Parameter

host:String — Ein vollständig qualifizierter DNS-Domänenname oder eine IP-Adresse im Format aaa.bbb.ccc.ddd. Sie können auch null angeben, um eine Verbindung zum Hostserver herzustellen, auf dem die SWF-Datei gespeichert ist. Wenn die SWF-Datei, die diesen Aufruf ausgibt, in einem Webbrowser ausgeführt wird, muss sich host in derselben Domäne befinden wie die SWF-Datei.
 
port:int — Die zur Herstellung einer Verbindung verwendete TCP-Portnummer auf dem Host. Die Portnummer muss größer oder gleich 1024 sein, es sei denn, es wird eine Richtliniendatei verwendet.


Ereignisse
securityError:SecurityErrorEvent — Bei einem connect-Vorgang wurde versucht, eine Verbindung zu einem Server außerhalb der Sicherheits-Sandbox des Aufrufers oder zu einem Port mit einer niedrigeren Nummer als 1024 herzustellen. Sie können das Problem umgehen, indem Sie eine XMLSocket-Richtliniendatei auf dem Server verwenden.
 
data:DataEvent — Wird beim Empfang von unformatierten Daten ausgelöst.
 
connect:Event — Wird ausgelöst, wenn eine Netzwerkverbindung hergestellt wurde.

Auslöser
SecurityError — Über lokale nicht vertrauenswürdige SWF-Dateien kann keine Verbindung mit dem Internet hergestellt werden. Sie können dies umgehen, indem Sie die entsprechende SWF-Datei als lokal mit Netzwerkzugang oder als vertrauenswürdig klassifizieren.
 
SecurityError — Sie können für eine Socketverbindung keinen Port mit einer höheren Nummer als 65535 angeben.

Siehe auch

send()Methode 
public function send(object:*):void

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

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.

Siehe auch

Ereignisdetail
close Ereignis
Ereignisobjekttyp: flash.events.Event
Event.type property = flash.events.Event.CLOSE

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

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.

Definiert den Wert der Eigenschaft type eines close-Ereignisobjekts.

Dieses Ereignis verfügt über die folgenden Eigenschaften:

EigenschaftWert
bubblesfalse
cancelablefalse. Es gibt kein Standardverhalten, das abgebrochen werden kann.
currentTargetDas Objekt, welches das Ereignisobjekt aktiv mit einem Ereignis-Listener verarbeitet.
targetDas Objekt, dessen Verbindung geschlossen wurde.
connect Ereignis  
Ereignisobjekttyp: flash.events.Event
Event.type property = flash.events.Event.CONNECT

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

Wird nach dem erfolgreichen Aufruf der Methode XMLSocket.connect() ausgelöst.

Definiert den Wert der Eigenschaft type eines connect-Ereignisobjekts.

Dieses Ereignis verfügt über die folgenden Eigenschaften:

EigenschaftWert
bubblesfalse
cancelablefalse. Es gibt kein Standardverhalten, das abgebrochen werden kann.
currentTargetDas Objekt, welches das Ereignisobjekt aktiv mit einem Ereignis-Listener verarbeitet.
targetDas Socket- oder XMLSocket-Objekt, das eine Netzwerkverbindung hergestellt hat.
data Ereignis  
Ereignisobjekttyp: flash.events.DataEvent
DataEvent.type property = flash.events.DataEvent.DATA

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

Wird nach dem Senden oder Empfangen von unformatierten Daten ausgelöst.

Definiert den Wert der Eigenschaft type eines data-Ereignisobjekts.

Dieses Ereignis verfügt über die folgenden Eigenschaften:

EigenschaftWert
bubblesfalse
cancelablefalse. Es gibt kein Standardverhalten, das abgebrochen werden kann.
currentTargetDas Objekt, welches das Ereignisobjekt aktiv mit einem Ereignis-Listener verarbeitet.
dataDie in Flash Player geladenen unformatierten Daten.
targetDas XMLSocket-Objekt, das Daten empfängt.
ioError Ereignis  
Ereignisobjekttyp: flash.events.IOErrorEvent
IOErrorEvent.type property = flash.events.IOErrorEvent.IO_ERROR

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

Wird beim Auftreten eines Eingabe/Ausgabe-Fehlers ausgelöst, durch den ein Sende- oder Empfangsvorgang fehlschlägt.

Definiert den Wert der Eigenschaft type eines ioError-Ereignisobjekts.

Dieses Ereignis verfügt über die folgenden Eigenschaften:

EigenschaftWert
bubblesfalse
cancelablefalse. Es gibt kein Standardverhalten, das abgebrochen werden kann.
currentTargetDas Objekt, welches das Ereignisobjekt aktiv mit einem Ereignis-Listener verarbeitet.
targetDas Netzwerkobjekt, bei dem der Eingabe/Ausgabe-Fehler auftritt.
textDer als Fehlermeldung anzuzeigende Text.
securityError Ereignis  
Ereignisobjekttyp: flash.events.SecurityErrorEvent
SecurityErrorEvent.type property = flash.events.SecurityErrorEvent.SECURITY_ERROR

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

Wird ausgelöst, wenn mit einem Aufruf der Methode XMLSocket.connect() versucht wird, eine Verbindung zu einem Server außerhalb der Sicherheits-Sandbox des Aufrufers oder zu einem Port mit einer niedrigeren Nummer als 1024 herzustellen.

Die Konstante SecurityErrorEvent.SECURITY_ERROR definiert den Wert der type-Eigenschaft eines securityError-Ereignisobjekts.

Dieses Ereignis verfügt über die folgenden Eigenschaften:

EigenschaftWert
bubblesfalse
cancelablefalse. Es gibt kein Standardverhalten, das abgebrochen werden kann.
currentTargetDas Objekt, welches das Ereignisobjekt aktiv mit einem Ereignis-Listener verarbeitet.
targetDas Netzwerkobjekt, das den Sicherheitsfehler ausgibt.
textDer als Fehlermeldung anzuzeigende Text.

Siehe auch

Beispiele Verwendung von Beispielen
XMLSocketExample.as

Im folgenden Beispiel wird die XMLSocketExample-Klasse verwendet, um Daten über eine XMLSocket-Verbindung zu senden und bei XMLSocket-Ereignissen Informationen auszugeben. Dies wird in den folgenden Schritten erreicht:
  1. Der XMLSocketExample-Konstruktor erstellt eine XMLSocket-Instanz mit dem Namen socket, übergibt socket an ConfigureListeners() (siehe unten) und ruft dann die Methode connect() für die XMLSocket-Verbindung auf, wobei der Hostname "localhost" und die Portnummer 8080 verwendet werden.
  2. Daraufhin wird die Methode configureListeners() aufgerufen, die für jedes unterstützte XMLSocket-Ereignis Listener hinzufügt:
    • closeHandler() : Listener für das Ereignis close, das nach dem Schließen der Netzwerkverbindung ausgelöst wird.
    • connectHandler() : Listener für das Ereignis connect, das nach dem Herstellen der Netzwerkverbindung ausgelöst wird.
    • dataHandler() : Listener für die data-Ereignisse, die jedes Mal ausgelöst werden, wenn über die XMLSocket-Verbindung neue Daten empfangen werden.
    • progressHandler(): Listener für die progress-Ereignisse, die beim Aufruf von send() und während des Sendevorgangs ausgelöst werden.
    • securityErrorHandler(): Listener für securityError-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ür ioError-Ereignisse, die ausgelöst werden, wenn das Senden oder Empfangen von Daten fehlschlägt.

Hinweise:


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);
            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);
        }
    }
}




 

Eine E-Mail an mich senden, wenn dieser Seite Kommentare hinzugefügt werden | Kommentarbericht

Aktuelle Seite: http://livedocs.adobe.com/flash/9.0_de/ActionScriptLangRefV3/flash/net/XMLSocket.html