Pacchetto | flash.net |
Classe | public class XMLSocket |
Ereditarietà | XMLSocket EventDispatcher Object |
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
- i messaggi XML vengono inviati su una connessione socket di streaming TCP/IP full-duplex;
- ogni messaggio XML è un documento XML completo, terminato da un byte zero (0);
- su una singola connessione XMLSocket può essere inviato e ricevuto un numero illimitato di messaggi XML.
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, utilizzate la classe URLLoader anziché la classe XMLSocket.
Per utilizzare i metodi della classe XMLSocket, come prima cosa utilizzate la funzione di costruzione new XMLSocket
per creare un oggetto XMLSocket.
I file SWF nella sandbox locale con file system non possono utilizzare i socket.
I file dei criteri socket sull'host di destinazione specificano gli host da cui i file SWF possono effettuare connessioni socket e le porte a cui tali connessioni possono essere effettuate. I requisiti di sicurezza relativi ai file dei criteri per i socket sono diventati più rigidi nelle ultime versioni di Flash Player. In tutte le versioni di Flash Player, Adobe consiglia di utilizzare un file dei criteri per i socket; in alcune circostanze tale file è obbligatorio. Di conseguenza, se utilizzate oggetti XMLSocket, accertatevi che l'host di destinazione fornisca un file dei criteri per i socket, se necessario.
Nell'elenco seguente sono riepilogati i requisiti relativi ai file dei criteri per i socket nelle diverse versioni di Flash Player:
- In Flash Player 9.0.124.0 e versioni successive, un file dei criteri per i socket è necessario per qualsiasi connessione XMLSocket. Vale a dire che un file dei criteri per i socket sull'host di destinazione è necessario indipendentemente dalla porta a cui vi collegate, anche se vi collegate a una porta sullo stesso host che fornisce il file SWF.
- In Flash Player versioni 9.0.115.0 e precedenti, se desiderate collegavi a un numero di porta inferiore a 1024 o se desiderate collegarvi a un host diverso da quello che fornisce il file SWF, è necessario che sull'host di destinazione sia presente un file dei criteri per i socket.
- In Flash Player 9.0.115.0, anche se non è necessario un file dei criteri per i socket, viene visualizzato un avviso quando utilizzate Flash Debug Player se l'host di destinazione non fornisce un file dei criteri per i socket.
Tuttavia, in Adobe AIR, il contenuto della funzione di sicurezza sandbox dell'applicazione
(contenuto installato con l'applicazione AIR) non è interessato da queste limitazioni di sicurezza.
Per ulteriori informazioni sulla sicurezza, vedete l'argomento sulla sicurezza nel Centro per sviluppatori di Flash Player .
Altri esempi
Elementi API correlati
Proprietà | Definito da | ||
---|---|---|---|
connected : Boolean [sola lettura]
Indica se l'oggetto XMLSocket è attualmente connesso. | XMLSocket | ||
constructor : Object
Un riferimento all'oggetto classe o alla funzione di costruzione per una determinata istanza di oggetto. | Object | ||
timeout : int
Indica il numero di millisecondi di attesa di una connessione. | XMLSocket |
Metodo | Definito da | ||
---|---|---|---|
Crea un nuovo oggetto XMLSocket. | XMLSocket | ||
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 | ||
Stabilisce una connessione all'host Internet specificato mediante la porta TCP configurata. | XMLSocket | ||
Invia un evento nel flusso di eventi. | EventDispatcher | ||
Verifica se per l'oggetto EventDispatcher sono presenti listener registrati per un tipo specifico di evento. | EventDispatcher | ||
Indica se per un oggetto è definita una proprietà specifica. | Object | ||
Indica se un'istanza della classe Object si trova nella catena di prototipi dell'oggetto specificato come parametro. | Object | ||
Indica se la proprietà specificata esiste ed è enumerabile. | Object | ||
Rimuove un listener dall'oggetto EventDispatcher. | EventDispatcher | ||
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 | ||
Imposta la disponibilità di una proprietà dinamica per le operazioni cicliche. | Object | ||
Restituisce la rappresentazione in formato stringa di questo oggetto, formattato in base alle convenzioni specifiche per le versioni localizzate. | Object | ||
Restituisce la rappresentazione in formato stringa dell'oggetto specificato. | Object | ||
Restituisce il valore di base dell'oggetto specificato. | Object | ||
Verifica se un listener di eventi è registrato con questo oggetto EventDispatcher o qualsiasi suo antenato per il tipo di evento specificato. | EventDispatcher |
Evento | Riepilogo | Definito da | ||
---|---|---|---|---|
[evento di trasmissione] Inviato quando Flash Player o l'applicazione AIR ottiene lo stato di attivazione del sistema operativo ed entra nello stato 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 | |||
[evento di trasmissione] Inviato quando Flash Player o l'applicazione AIR perde l'attivazione del sistema operativo e sta entrando nello stato 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 |
connected | proprietà |
connected:Boolean
[sola lettura] Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Indica se l'oggetto XMLSocket è attualmente connesso. È anche possibile verificare se la connessione è riuscita registrandosi per l'evento connect
e l'evento ioError
.
Implementazione
public function get connected():Boolean
Elementi API correlati
timeout | proprietà |
timeout:int
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Indica il numero di millisecondi di attesa di una connessione.
Se la connessione non viene stabilita entro l'intervallo specificato, avrà esito negativo. Il valore predefinito è 20,000 (venti secondi).
Implementazione
public function get timeout():int
public function set timeout(value:int):void
XMLSocket | () | Funzione di costruzione |
public function XMLSocket(host:String = null, port:int = 0)
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Crea un nuovo oggetto XMLSocket. Se non è specificato alcun parametro, viene creato un socket inizialmente disconnesso. Se sono specificati dei parametri, viene tentata una connessione all'host e alla porta specificati.
Nota: si consiglia di utilizzare la funzione di costruzione senza parametri, quindi di aggiungere eventuali listener di eventi e chiamare il metodo connect
con i parametri host
e port
. Questa sequenza garantisce che tutti i listener di eventi funzioneranno correttamente.
host:String (default = null ) — Un nome di dominio DNS completo o un indirizzo IP sotto forma di .222.333.444. In Flash Player 9.0.115.0 e AIR 1.0 e versioni successive, potete specificare indirizzi IPv6, come rtmp://[2001:db8:ccc3:ffff:0:444d:555e:666f]. Per connettervi al server host sul quale risiede il file SWF, potete inoltre 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 di destinazione utilizzato per stabilire una connessione. In Flash Player 9.0.124.0 e versioni successive, l'host di destinazione deve fornire un file dei criteri per i socket in cui è specificato che le connessioni socket sono consentite dall'host che fornisce il file SWF alla porta specificata. Nelle versioni precedenti di Flash Player, un file dei criteri per i socket è necessario solo se desiderate collegavi a un numero di porta inferiore a 1024 o se desiderate collegarvi a un host diverso da quello che fornisce il file SWF.
|
Elementi API correlati
close | () | metodo |
public function close():void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
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()
.
Altri esempi
Elementi API correlati
connect | () | metodo |
public function connect(host:String, port:int):void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Stabilisce una connessione all'host Internet specificato mediante la porta TCP configurata.
Se specificate il valore null
per il parametro host
, l'host contattato è quello su cui risiede il file che effettua la chiamata a XMLSocket.connect()
. Se, ad esempio, il file che emette la chiamata è stato scaricato da www.adobe.com, specificando null
per il parametro host, significa che state collegandovi a www.adobe.com.
È possibile impedire che un file utilizzi questo metodo impostando il parametro allowNetworking
dei tag object
ed embed
nella pagina HTML che include il contenuto SWF.
Per ulteriori informazioni, vedete l'argomento sulla sicurezza nel Centro per sviluppatori di Flash Player .
Parametri
host:String — Un nome di dominio DNS completo o un indirizzo IP nel formato 111.222.333.444. Per connettervi al server host sul quale risiede il file SWF, potete inoltre specificare null . Se il file che emette la chiamata è un file SWF in esecuzione in un browser Web, l'host deve trovarsi nello stesso dominio del file.
| |
port:int — Il numero della porta TCP sull'host di destinazione utilizzato per stabilire una connessione. In Flash Player 9.0.124.0 e versioni successive, l'host di destinazione deve fornire un file dei criteri per i socket in cui è specificato che le connessioni socket sono consentite dall'host che fornisce il file SWF alla porta specificata. Nelle versioni precedenti di Flash Player, un file dei criteri per i socket è necessario solo se desiderate collegavi a un numero di porta inferiore a 1024 o se desiderate collegarvi a un host diverso da quello che fornisce il file SWF.
|
Eventi
securityError: — Un'operazione di connessione ha tentato di connettersi a un host al di fuori della sandbox del chiamante o a una porta che richiede un file dei criteri per i socket. Questi problemi possono essere risolti utilizzando un file dei criteri per i socket sull'host di destinazione.
| |
data: — Inviato quando sono stati ricevuti dei dati originari.
| |
connect: — Inviato quando è stata stabilita la connessione di rete.
|
Genera
SecurityError — I file non attendibili locali potrebbero non essere in grado di comunicare con Internet. Questo limite può essere superato riclassificando il file come file locale con utilizzo in rete o come attendibile.
| |
SecurityError — Non è possibile specificare una porta socket superiore a 65535.
|
Altri esempi
Elementi API correlati
send | () | metodo |
public function send(object:*):void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
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.
|
Altri esempi
Elementi API correlati
close | Evento |
flash.events.Event
proprietà Event.type =
flash.events.Event.CLOSE
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
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()
.
Event.CLOSE
definisce il valore della proprietà type
di un oggetto evento close
.
Questo evento ha le seguenti proprietà:
Proprietà | Valore |
---|---|
bubbles | false |
cancelable | false ; non è presente alcun comportamento predefinito da annullare. |
currentTarget | L'oggetto che elabora attivamente l'oggetto Event con un listener di eventi. |
target | L'oggetto la cui connessione è stata chiusa. |
connect | Evento |
flash.events.Event
proprietà Event.type =
flash.events.Event.CONNECT
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Inviato dopo una chiamata riuscita al metodo XMLSocket.connect()
.
Event.CONNECT
definisce il valore della proprietà type
di un oggetto evento connect
.
Questo evento ha le seguenti proprietà:
Proprietà | Valore |
---|---|
bubbles | false |
cancelable | false ; non è presente alcun comportamento predefinito da annullare. |
currentTarget | L'oggetto che elabora attivamente l'oggetto Event con un listener di eventi. |
target | L'oggetto Socket o XMLSocket che ha stabilito una connessione di rete. |
data | Evento |
flash.events.DataEvent
proprietà DataEvent.type =
flash.events.DataEvent.DATA
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
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 |
---|---|
bubbles | false |
cancelable | false ; non è presente alcun comportamento predefinito da annullare. |
currentTarget | L'oggetto che elabora attivamente l'oggetto Event con un listener di eventi. |
data | I dati originari caricati in Flash Player o Adobe AIR. |
target | L'oggetto XMLSocket che riceve i dati. |
ioError | Evento |
flash.events.IOErrorEvent
proprietà IOErrorEvent.type =
flash.events.IOErrorEvent.IO_ERROR
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
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 |
---|---|
bubbles | false |
cancelable | false ; non è presente alcun comportamento predefinito da annullare. |
currentTarget | L'oggetto che elabora attivamente l'oggetto Event con un listener di eventi. |
errorID | Un numero di riferimento associato all'errore specifico (solo AIR). |
target | L'oggetto di rete interessato dall'errore di input/output. |
text | Testo da visualizzare come messaggio di errore. |
securityError | Evento |
flash.events.SecurityErrorEvent
proprietà SecurityErrorEvent.type =
flash.events.SecurityErrorEvent.SECURITY_ERROR
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
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.
SecurityErrorEvent.SECURITY_ERROR
definisce il valore della proprietà type
di un oggetto evento securityError
.
Questo evento ha le seguenti proprietà:
Proprietà | Valore |
---|---|
bubbles | false |
cancelable | false ; non è presente alcun comportamento predefinito da annullare. |
currentTarget | L'oggetto che elabora attivamente l'oggetto Event con un listener di eventi. |
target | L'oggetto di rete che riporta l'errore di sicurezza. |
text | Testo da visualizzare come messaggio di errore. |
Elementi API correlati
- La funzione di costruzione XMLSocketExample crea un'istanza XMLSocket denominata
socket
e passasocket
aConfigureListeners()
(descritto di seguito), quindi chiama il metodoconnect()
di XMLSocket mediante il nome host "localhost" e il numero di porta8080
. - Viene quindi chiamato il metodo
configureListeners()
che aggiunge i listener per ognuno degli eventi XMLSocket supportati:closeHandler()
: intercetta l'eventoclose
che viene inviato dopo la chiusura della connessione di rete.connectHandler()
: intercetta l'eventoconnect
che viene inviato quando è stata stabilita una connessione di rete.dataHandler()
: intercetta gli eventidata
che vengono inviati ogni volta che XMLSocket riceve nuovi dati.progressHandler()
: intercetta gli eventiprogress
, che vengono inviati quando è stata effettuata una chiamata asend()
e mentre l'invio è in corso.securityErrorHandler()
: intercetta gli eventisecurityError
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 eventiioError
che si verificano solo se un'operazione di invio o ricezione dati non riesce.
Note:
- Dovete compilare il file SWF con l'opzione "Sicurezza riproduzione locale" impostato su "Accedi solo alla rete".
- Perché questo esempio funzioni, è necessario che un server sia in esecuzione sul dominio locale utilizzando la porta 8080.
- Se utilizzate Flash Player 9.0.124.0 o versione successiva, dovete inserire un file dei criteri per i socket sul server che consenta le connessioni socket dal dominio locale alla porta 8080. Per informazioni sulla fornitura di file dei criteri per i socket, vedete l'argomento nel Centro per sviluppatori Flash Player: Setting up a socket policy file server (Impostazione di un file server di criteri per i socket).
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, 02:44 PM Z