Pacchettoflash.net
Classepublic class XMLSocket
EreditarietàXMLSocket Inheritance EventDispatcher Inheritance Object

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Una classe XMLSocket implementa i socket client che consentono al computer su cui è in esecuzione Flash Player di comunicare con un server identificato da un indirizzo IP o da un nome di dominio. È utile per le applicazioni client-server che richiedono una bassa latenza, ad esempio i sistemi per le chat in tempo reale. Una normale soluzione chat basata su HTTP esegue il polling del server e scarica i nuovi messaggi mediante una richiesta HTTP. Al contrario, una soluzione chat basata su XMLSocket mantiene una connessione aperta con il server, che consente a quest'ultimo di inviare immediatamente i messaggi in entrata senza che il client emetta una richiesta. Per utilizzare la classe XMLSocket, sul server deve essere in esecuzione un daemon in grado interpretare il protocollo utilizzato dalla classe XMLSocket. Il protocollo viene descritto nell'elenco seguente:

Il metodo XMLSocket.connect() può connettersi solo ai numeri di porta TCP superiori o uguali a 1024. Una conseguenza di questa limitazione consiste nel fatto che anche i daemon dei server che comunicano con l'oggetto XMLSocket devono essere assegnati a numeri di porta superiori o uguali a 1024. I numeri di porta inferiori a 1024 vengono spesso utilizzati dai servizi di sistema come FTP, Telnet e HTTP e pertanto gli oggetti XMLSocket sono esclusi da queste porte per motivi di sicurezza. La restrizione dei numeri di porta riduce le possibilità di accesso inappropriato e abuso di queste risorse.

La procedura di configurazione di un server per la comunicazione con l'oggetto XMLSocket può rivelarsi un'operazione complessa. Se l'applicazione in uso non richiede l'interattività in tempo reale, utilizzare la classe URLLoader anziché la classe XMLSocket. Per utilizzare i metodi della classe XMLSocket, come prima cosa utilizzare la funzione di costruzione new XMLSocket per creare un oggetto XMLSocket.

Quando si utilizza questa classe, considerare il modello di sicurezza di Flash Player.

Per ulteriori informazioni, vedere i seguenti riferimenti:

Vedere gli esempi

Vedere anche

flash.net.URLLoader.load()
flash.net.URLLoader
Connessioni socket


Proprietà pubbliche
 ProprietàDefinito da
  connected: Boolean
[sola lettura] Indica se l'oggetto XMLSocket è correntemente connesso.
XMLSocket
 Inheritedconstructor: Object
Un riferimento all'oggetto classe o alla funzione di costruzione per una determinata istanza di oggetto.
Object
 Inheritedprototype: Object
[statico] Un riferimento all'oggetto prototipo di un oggetto classe o funzione.
Object
Metodi pubblici
 MetodoDefinito da
  
XMLSocket(host:String = null, port:int = 0)
Crea un nuovo oggetto XMLSocket.
XMLSocket
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registra un oggetto listener di eventi con un oggetto EventDispatcher, in modo che il listener riceva la notifica di un evento.
EventDispatcher
  
Chiude la connessione specificata dall'oggetto XMLSocket.
XMLSocket
  
connect(host:String, port:int):void
Stabilisce una connessione all'host Internet specificato mediante la porta TCP configurata.
XMLSocket
 Inherited
Invia un evento nel flusso di eventi.
EventDispatcher
 Inherited
Verifica se per l'oggetto EventDispatcher sono presenti listener registrati per un tipo specifico di evento.
EventDispatcher
 Inherited
Indica se per un oggetto è definita una proprietà specifica.
Object
 Inherited
Indica se un'istanza della classe Object si trova nella catena di prototipi dell'oggetto specificato come parametro.
Object
 Inherited
Indica se la proprietà specificata esiste ed è enumerabile.
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Rimuove un listener dall'oggetto EventDispatcher.
EventDispatcher
  
send(object:*):void
Converte l'oggetto XML o i dati specificati nel parametro object in una stringa e la trasmette al server, seguita da un byte zero (0).
XMLSocket
 Inherited
Imposta la disponibilità di una proprietà dinamica per le operazioni cicliche.
Object
 Inherited
Restituisce la rappresentazione in formato stringa dell'oggetto specificato.
Object
 Inherited
Restituisce il valore di base dell'oggetto specificato.
Object
 Inherited
Verifica se un listener di eventi è registrato con questo oggetto EventDispatcher o qualsiasi suo antenato per il tipo di evento specificato.
EventDispatcher
Eventi
 Evento Riepilogo Definito da
 Inherited Inviato quando Flash Player riceve lo stato di attivazione del sistema operativo e diventa attivo.EventDispatcher
   Inviato quando il server chiude la connessione socket.XMLSocket
   Inviato dopo una chiamata riuscita al metodo XMLSocket.connect().XMLSocket
   Inviato dopo che sono stati inviati o ricevuti dei dati raw.XMLSocket
 Inherited Inviato quando Flash Player perde lo stato di attivazione del sistema operativo e sta per diventare inattivo.EventDispatcher
   Inviato quando si verifica un errore di input/output che impedisce un'operazione di invio o ricezione.XMLSocket
   Inviato se una chiamata al metodo XMLSocket.connect() tenta di connettersi a un server che si trova al di fuori della funzione di sicurezza sandbox del chiamante o a una porta con numero inferiore a 1024.XMLSocket
Descrizione delle proprietà
connectedproprietà
connected:Boolean  [sola lettura]

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Indica se l'oggetto XMLSocket è correntemente connesso. È anche possibile verificare se la connessione è riuscita registrandosi per l'evento connect e l'evento ioError.


Implementazione
    public function get connected():Boolean

Vedere anche

Descrizione della funzione di costruzione
XMLSocket()Funzione di costruzione
public function XMLSocket(host:String = null, port:int = 0)

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Crea un nuovo oggetto XMLSocket. L'oggetto XMLSocket non è inizialmente connesso ad alcun server. È necessario chiamare XMLSocket.connect() per connettere l'oggetto a un server.

Parametri
host:String (default = null) — Un nome di dominio DNS completo o un indirizzo IP nel formato aaa.bbb.ccc.ddd. Per connettersi al server host sul quale risiede il file SWF, è inoltre possibile specificare null. Se il file SWF che emette la chiamata viene eseguito in un browser Web, l'host deve trovarsi nello stesso dominio del file SWF.
 
port:int (default = 0) — Il numero della porta TCP sull'host utilizzato per stabilire una connessione. Il numero della porta deve essere superiore o uguale a 1024, a meno che non venga utilizzato un file dei criteri.

Vedere anche

Descrizione dei metodi
close()metodo
public function close():void

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Chiude la connessione specificata dall'oggetto XMLSocket. L'evento close viene inviato solo quando il server chiude la connessione; non viene inviato quando si chiama il metodo close().

Vedere anche

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

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Stabilisce una connessione all'host Internet specificato mediante la porta TCP configurata. Per impostazione predefinita, è possibile connettersi solo alla porta 1024 o superiore, a meno che non si stia utilizzando un file dei criteri.

Se si specifica il valore null per il parametro host, l'host contattato è quello su cui risiede il file SWF che effettua la chiamata a XMLSocket.connect(). Ad esempio, se il file SWF è stato scaricato da www.adobe.com, specificare null per il parametro host equivale a immettere l'indirizzo IP di www.adobe.com.

Nei file SWF in esecuzione su una versione di Flash Player precedente alla 7, host deve trovarsi nello stesso superdominio del file SWF che effettua la chiamata. Ad esempio, un file SWF all'indirizzo www.adobe.com può inviare o ricevere le variabili da un file SWF presente in store.adobe.com poiché entrambi i file si trovano nello stesso superdominio di adobe.com.

Nei file SWF di qualunque versione eseguita in Flash Player 7 o superiore, host deve trovarsi esattamente nello stesso dominio. Ad esempio, un file SWF all'indirizzo www.adobe.com che è stato pubblicato per Flash Player 5, ma viene eseguito in Flash Player 7 o successivo, può inviare o ricevere variabili solo dai file SWF che si trovano all'indirizzo www.adobe.com. Per inviare o ricevere variabili da un dominio diverso, è possibile collocare un file dei criteri dei domini sul server su cui risiede il file SWF a cui si sta accedendo.

È possibile impedire che un file SWF utilizzi questo metodo impostando il parametro allowNetworking dei tag object ed embed nella pagina HTML che include il contenuto SWF.

Per ulteriori informazioni, vedere i seguenti riferimenti:

Parametri

host:String — Un nome di dominio DNS completo o un indirizzo IP nel formato aaa.bbb.ccc.ddd. Per connettersi al server host sul quale risiede il file SWF, è inoltre possibile specificare null. Se il file SWF che emette la chiamata viene eseguito in un browser Web, l'host deve trovarsi nello stesso dominio del file SWF.
 
port:int — Il numero della porta TCP sull'host utilizzato per stabilire una connessione. Il numero della porta deve essere superiore o uguale a 1024, a meno che non venga utilizzato un file dei criteri.


Eventi
securityError:SecurityErrorEvent — Un'operazione di connessione ha tentato di connettersi a un server che si trova al di fuori della funzione di sicurezza sandbox del chiamante e/o a una porta con numero inferiore a 1024. Entrambi i problemi possono essere risolti utilizzando un file dei criteri XMLSocket sul server.
 
data:DataEvent — Inviato quando sono stati ricevuti dei dati originari.
 
connect:Event — Inviato quando รจ stata stabilita la connessione di rete.

Genera
SecurityError — I file SWF non attendibili locali potrebbero non essere in grado di comunicare con Internet. Questo inconveniente può essere risolto riclassificando il file SWF come file locale con utilizzo in rete o come attendibile.
 
SecurityError — Non è possibile specificare una porta socket superiore a 65535.

Vedere anche

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

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Converte l'oggetto XML o i dati specificati nel parametro object in una stringa e la trasmette al server, seguita da un byte zero (0). Se object è un oggetto XML, la stringa è la rappresentazione testuale XML dell'oggetto XML. L'operazione di invio è asincrona; restituisce immediatamente un valore, ma è possibile che i dati vengano trasmessi in un secondo momento. Il metodo XMLSocket.send() non restituisce un valore che indica se i dati sono stati trasmessi correttamente.

Se non si connette l'oggetto XMLSocket al server (mediante XMLSocket.connect()), l'operazione XMLSocket.send() non riesce.

Parametri

object:* — Un oggetto XML o altri dati da trasmettere al server.


Genera
IOError — L'oggetto XMLSocket non è connesso al server.

Vedere anche

Descrizione degli eventi
close Evento
Tipo di oggetto evento: flash.events.Event
Event.type property = flash.events.Event.CLOSE

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Inviato quando il server chiude la connessione socket. L'evento close viene inviato solo quando il server chiude la connessione; non viene inviato quando si chiama il metodo XMLSocket.close().

Definisce il valore della proprietà type di un oggetto evento close.

Questo evento ha le seguenti proprietà:

ProprietàValore
bubblesfalse
cancelablefalse; non è presente alcun comportamento predefinito da annullare.
currentTargetL'oggetto che elabora attivamente l'oggetto Event con un listener di eventi.
targetL'oggetto la cui connessione è stata chiusa.
connect Evento  
Tipo di oggetto evento: flash.events.Event
Event.type property = flash.events.Event.CONNECT

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Inviato dopo una chiamata riuscita al metodo XMLSocket.connect().

Definisce il valore della proprietà type di un oggetto evento connect.

Questo evento ha le seguenti proprietà:

ProprietàValore
bubblesfalse
cancelablefalse; non è presente alcun comportamento predefinito da annullare.
currentTargetL'oggetto che elabora attivamente l'oggetto Event con un listener di eventi.
targetL'oggetto Socket o XMLSocket che ha stabilito una connessione di rete.
data Evento  
Tipo di oggetto evento: flash.events.DataEvent
DataEvent.type property = flash.events.DataEvent.DATA

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Inviato dopo che sono stati inviati o ricevuti dei dati raw.

Definisce il valore della proprietà type di un oggetto evento data.

Questo evento ha le seguenti proprietà:

ProprietàValore
bubblesfalse
cancelablefalse; non è presente alcun comportamento predefinito da annullare.
currentTargetL'oggetto che elabora attivamente l'oggetto Event con un listener di eventi.
dataI dati originari caricati in Flash Player.
targetL'oggetto XMLSocket che riceve i dati.
ioError Evento  
Tipo di oggetto evento: flash.events.IOErrorEvent
IOErrorEvent.type property = flash.events.IOErrorEvent.IO_ERROR

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Inviato quando si verifica un errore di input/output che impedisce un'operazione di invio o ricezione.

Definisce il valore della proprietà type di un oggetto evento ioError.

Questo evento ha le seguenti proprietà:

ProprietàValore
bubblesfalse
cancelablefalse; non è presente alcun comportamento predefinito da annullare.
currentTargetL'oggetto che elabora attivamente l'oggetto Event con un listener di eventi.
targetL'oggetto di rete interessato dall'errore di input/output.
textTesto da visualizzare come messaggio di errore.
securityError Evento  
Tipo di oggetto evento: flash.events.SecurityErrorEvent
SecurityErrorEvent.type property = flash.events.SecurityErrorEvent.SECURITY_ERROR

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Inviato se una chiamata al metodo XMLSocket.connect() tenta di connettersi a un server che si trova al di fuori della funzione di sicurezza sandbox del chiamante o di una porta con numero inferiore a 1024.

La costante SecurityErrorEvent.SECURITY_ERROR definisce il valore della proprietà type di un oggetto evento securityError.

Questo evento ha le seguenti proprietà:

ProprietàValore
bubblesfalse
cancelablefalse; non è presente alcun comportamento predefinito da annullare.
currentTargetL'oggetto che elabora attivamente l'oggetto Event con un listener di eventi.
targetL'oggetto di rete che riporta l'errore di sicurezza.
textTesto da visualizzare come messaggio di errore.

Vedere anche

Esempi Come utilizzare gli esempi
XMLSocketExample.as

Nell'esempio seguente viene utilizzata la classe XMLSocketExample per inviare dati mediante XMLSocket e stampare informazioni durante gli eventi XMLSocket. Questa operazione viene eseguita mediante la procedura seguente:
  1. La funzione di costruzione XMLSocketExample crea un'istanza XMLSocket denominata socket e passa socket a ConfigureListeners() (descritto di seguito), quindi chiama il metodo connect() di XMLSocket mediante il nome host "localhost" e il numero di porta 8080.
  2. Viene quindi chiamato il metodo configureListeners() che aggiunge i listener per ognuno degli eventi XMLSocket supportati:
    • closeHandler(): intercetta l'evento close che viene inviato dopo la chiusura della connessione di rete.
    • connectHandler(): intercetta l'evento connect che viene inviato quando è stata stabilita una connessione di rete.
    • dataHandler(): intercetta gli eventi data che vengono inviati ogni volta che XMLSocket riceve nuovi dati.
    • progressHandler(): intercetta gli eventi progress, che vengono inviati quando è stata effettuata una chiamata a send() e mentre l'invio è in corso.
    • securityErrorHandler(): intercetta gli eventi securityError che sarebbero inviati se si tentasse di accedere a XMLSocket con l'impostazione di sicurezza per la riproduzione locale non corretta o utilizzando una porta con numero inferiore a 1024.
    • ioErrorHandler(): intercetta gli eventi ioError che si verificano solo se un'operazione di invio o ricezione dati non riesce.

Note:


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




 

Inviami un messaggio e-mail quando vengono aggiunti dei commenti a questa | Rapporto sui commenti

Pagina corrente: http://livedocs.adobe.com/flash/9.0_it/ActionScriptLangRefV3/flash/net/XMLSocket.html