Pakket | flash.net |
Klasse | public class XMLSocket |
Overerving | XMLSocket EventDispatcher Object |
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
- XML-berichten worden via een full-duplex TCP/IP-streamsocketverbinding verzonden.
- Elk XML-bericht is een volledig XML-document dat met een nulbyte (0) wordt afgesloten.
- Er kan een onbeperkt aantal XML-berichten worden verzonden en ontvangen via één XMLSocket-verbinding.
Het kan lastig zijn een server zodanig in te stellen dat deze met het object XMLSocket kan communiceren. Als uw toepassing geen realtime interactiviteit vereist, gebruikt u de klasse URLLoader in plaats van de klasse XMLSocket.
U moet eerst een object XMLSocket maken met de constructor new XMLSocket
voordat u de methoden van de klasse XMLSocket kunt gebruiken.
SWF-bestanden in de sandbox Lokaal met bestandssysteem mogen geen sockets gebruiken.
Bestanden met socketbeleid op de doelhost bepalen vanaf welke hosts SWF-bestanden socketverbindingen kunnen maken en naar welke poorten die verbindingen kunnen worden gemaakt. De beveiligingsvereisten met betrekking tot bestanden met socketbeleid zijn in de laatste paar versies van Flash Player strenger geworden. Adobe raadt u aan om in alle versies van Flash Player een bestand met socketbeleid te gebruiken, in sommige gevallen is een bestand met socketbeleid zelfs vereist. Als u werkt met XMLSocket-objecten, moet u er dus voor zorgen dat de doelhost indien nodig een bestand met socket-beleid levert.
De onderstaande lijst geeft de vereisten voor bestanden met socketbeleid in verschillende versies van Flash Player:
- In Flash Player 9.0.124.0 en hoger is voor elke XMLSocket-verbinding een bestand met socketbeleid vereist. Oftewel, een bestand met socketbeleid op de doelhost is vereist, met welke poort u ook verbinding maakt, en is zelfs vereist als u verbinding maakt met een poort op dezelfde host die als server voor het SWF-bestand fungeert.
- In Flash Player 9.0.115.0 en eerder kunt u alleen verbinding maken met een poortnummer lager dan 1024, of met een andere host dan de host met het SWF-bestand, als er op de doelhost een bestand met socket-beleid aanwezig is.
- Als de doelhost geen bestand met socketbeleid heeft, wordt in Flash Player 9.0.115.0 een waarschuwing weergegeven wanneer de Flash Debug Player wordt gebruikt, zelfs als er geen bestand met socketbeleid is vereist.
In Adobe AIR is de inhoud in de application
-beveiligingssandbox (inhoud die met de AIR-toepassing is geïnstalleerd), echter niet beperkt tot deze beveiligingsbeperkingen.
Lees voor meer informatie over beveiliging het onderwerp Security in het Flash Player Developer Center.
Verwante API-elementen
Eigenschap | Gedefinieerd door | ||
---|---|---|---|
connected : Boolean [alleen-lezen]
Geeft aan of dit object XMLSocket momenteel is verbonden. | XMLSocket | ||
constructor : Object
Verwijzing naar het klasseobject of de constructorfunctie van een bepaalde objectinstantie. | Object | ||
timeout : int
Hiermee wordt aangegeven hoeveel milliseconden er op een verbinding wordt gewacht. | XMLSocket |
Methode | Gedefinieerd door | ||
---|---|---|---|
Hiermee wordt een nieuw object XMLSocket gemaakt. | XMLSocket | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registreert een gebeurtenislistenerobject bij een object EventDispatcher, zodat de listener een melding van een gebeurtenis ontvangt. | EventDispatcher | ||
Sluit de verbinding die door het object XMLSocket is opgegeven. | XMLSocket | ||
Brengt via de opgegeven TCP-poort een verbinding met de opgegeven internethost tot stand. | XMLSocket | ||
Verzendt een gebeurtenis naar de gebeurtenisstroom. | EventDispatcher | ||
Controleert of het object EventDispatcher listeners heeft geregistreerd voor een specifiek type gebeurtenis. | EventDispatcher | ||
Geeft aan of voor een object een opgegeven eigenschap is gedefinieerd. | Object | ||
Geeft aan of een instantie van de klasse Object zich in de prototypeketen van het object bevindt dat als parameter is opgegeven. | Object | ||
Geeft aan of de opgegeven eigenschap bestaat en kan worden opgesomd. | Object | ||
Verwijdert een listener uit het object EventDispatcher. | EventDispatcher | ||
Zet het XML-object, of gegevens die zijn opgegeven in de parameter object, om in een tekenreeks en verzendt deze naar de server, gevolgd door een nulbyte (0). | XMLSocket | ||
Stelt de beschikbaarheid van een dynamische eigenschap voor lusbewerkingen in. | Object | ||
Geeft de tekenreeksweergave van dit object weer, geformatteerd volgens de locatiespecifieke conventies. | Object | ||
Retourneert een tekenreeksrepresentatie van het opgegeven object. | Object | ||
Retourneert de primitieve waarde van het opgegeven object. | Object | ||
Controleert of een gebeurtenislistener is geregistreerd bij dit object EventDispatcher of een van de voorouders voor het opgegeven type gebeurtenis. | EventDispatcher |
Gebeurtenis | Overzicht | Gedefinieerd door | ||
---|---|---|---|---|
[uitgezonden gebeurtenis] Wordt verzonden wanneer Flash Player of de AIR-toepassing de besturingssysteemfocus krijgt en actief wordt. | EventDispatcher | |||
Wordt verzonden wanneer de server de socketverbinding sluit. | XMLSocket | |||
Wordt verzonden na een geslaagde aanroep van de methode XMLSocket.connect(). | XMLSocket | |||
Wordt verzonden nadat onbewerkte gegevens zijn verzonden of ontvangen. | XMLSocket | |||
[uitgezonden gebeurtenis] Wordt verzonden wanneer Flash Player of de AIR-toepassing de systeemfocus verliest en inactief wordt. | EventDispatcher | |||
Wordt verzonden wanneer een invoer-/uitvoerfout optreedt die ertoe leidt dat een verzend- of ontvangstbewerking mislukt. | XMLSocket | |||
Wordt verzonden wanneer een aanroep van de methode XMLSocket.connect() verbinding probeert te maken met een server buiten de beveiligingssandbox van het aanroeper of met een poort lager dan 1024. | XMLSocket |
connected | eigenschap |
connected:Boolean
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Geeft aan of dit object XMLSocket momenteel is verbonden. U kunt ook controleren of de verbinding is geslaagd via registratie voor de gebeurtenis connect
en de gebeurtenis ioError
.
Implementatie
public function get connected():Boolean
Verwante API-elementen
timeout | eigenschap |
timeout:int
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Hiermee wordt aangegeven hoeveel milliseconden er op een verbinding wordt gewacht.
Als de verbinding niet binnen de opgegeven tijd tot stand kan worden gebracht, is de verbinding mislukt. De standaardwaarde is 20,000 (twintig seconden).
Implementatie
public function get timeout():int
public function set timeout(value:int):void
XMLSocket | () | Constructor |
public function XMLSocket(host:String = null, port:int = 0)
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Hiermee wordt een nieuw object XMLSocket gemaakt. Wanneer geen parameters worden opgegeven, wordt een aanvankelijk niet-verbonden socket gemaakt. Wanneer wel parameters worden opgegeven, wordt geprobeerd verbinding te maken met de opgegeven host en poort.
Opmerking: het wordt sterk aanbevolen om gebruik te maken van het constructorformulier zonder parameters, vervolgens eventuele gebeurtenislisteners toe te voegen en vervolgens de methode connect
aan te roepen met de parameters host
en poort
. Deze volgorde zorgt ervoor dat alle gebeurtenislisteners goed werken.
host:String (default = null ) — Een volledig gekwalificeerde DNS-domeinnaam of een IP-adres in de notatie .222.333.444. In Flash Player 9.0.115.0 en AIR 1.0 en hoger kunt u IPv6-adressen opgeven, zoals rtmp://[2001:db8:ccc3:ffff:0:444d:555e:666f]. U kunt ook null opgeven om verbinding te maken met de hostserver waarop het SWF-bestand zich bevindt. Wanneer het SWF-bestand waaruit deze aanroep afkomstig is, in een webbrowser wordt uitgevoerd, moet host zich in hetzelfde domein bevinden als het SWF-bestand.
| |
port:int (default = 0 ) — Het TCP-poortnummer op de doelhost dat wordt gebruikt om een verbinding tot stand te brengen. In Flash Player 9.0.124.0 en hoger moet de doelhost een bestand met socketbeleid hebben waarin is aangegeven dat socketverbindingen zijn toegestaan tussen de host die als server voor het SWF-bestand fungeert en de opgegeven poort. In eerdere versies van Flash Player is alleen een bestand met socket-beleid nodig als u verbinding wilt maken met een poortnummer lager dan 1024 of met een andere host dan de host met het SWF-bestand.
|
Verwante API-elementen
close | () | methode |
public function close():void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Sluit de verbinding die door het object XMLSocket is opgegeven. De gebeurtenis close
wordt alleen verzonden wanneer de server de verbinding sluit. De gebeurtenis wordt niet verzonden wanneer u de methode close()
aanroept.
Verwante API-elementen
connect | () | methode |
public function connect(host:String, port:int):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Brengt via de opgegeven TCP-poort een verbinding met de opgegeven internethost tot stand.
Wanneer u de parameter host
op null
instelt, wordt verbinding gemaakt met de host waarop het bestand zich bevindt dat XMLSocket.connect()
aanroept. Als het aanroepende bestand bijvoorbeeld is gedownload van www.adobe.com en u stelt de parameter host in op null
, betekent dit dat u verbinding maakt met www.adobe.com.
U kunt voorkomen dat een bestand deze methode gebruikt door de parameter allowNetworking
in te stellen van de tags object
en embed
op de HTML-pagina die de SWF-inhoud bevat.
Lees voor meer informatie het onderwerp Security in het Flash Player Developer Center.
Parameters
host:String — Een volledig gekwalificeerde DNS-domeinnaam of een IP-adres in de notatie 111.222.333.444. U kunt ook null opgeven om verbinding te maken met de hostserver waarop het SWF-bestand zich bevindt. Als het aanroepende bestand een SWF-bestand dat in een webbrowser wordt uitgevoerd, moet host zich in hetzelfde domein bevinden als het bestand.
| |
port:int — Het TCP-poortnummer op de doelhost dat wordt gebruikt om een verbinding tot stand te brengen. In Flash Player 9.0.124.0 en hoger moet de doelhost een bestand met socketbeleid hebben waarin is aangegeven dat socketverbindingen zijn toegestaan tussen de host die als server voor het SWF-bestand fungeert en de opgegeven poort. In eerdere versies van Flash Player is alleen een bestand met socket-beleid nodig als u verbinding wilt maken met een poortnummer lager dan 1024 of met een andere host dan de host met het SWF-bestand.
|
Gebeurtenissen
securityError: — Een verbindingsbewerking probeerde verbinding te maken met een host buiten de beveiligingssandbox van het aanroepende bestand of met een poort waarvoor een bestand met socket-beleid nodig is. U kunt deze problemen omzeilen door op de doelhost een bestand met socket-beleid beschikbaar te stellen.
| |
data: — Wordt verzonden wanneer onbewerkte gegevens zijn ontvangen.
| |
connect: — Wordt verzonden wanneer een netwerkverbinding tot stand is gebracht.
|
Gegenereerde uitzondering
SecurityError — Lokale niet-vertrouwde bestanden mogen niet communiceren met internet. U kunt deze beperking omzeilen door het bestand opnieuw te classificeren als lokaal-met-netwerk of vertrouwd.
| |
SecurityError — U kunt geen socketpoort hoger dan 65535 opgeven.
|
Verwante API-elementen
send | () | methode |
public function send(object:*):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Zet het XML-object of de gegevens die in de parameter object
zijn opgegeven om in een tekenreeks en verzendt deze naar de server, gevolgd door een nulbyte (0). Wanneer object
een XML-object is, is de tekenreeks de tekstuele XML-representatie van het XML-object. De verzendbewerking is asynchroon; er wordt direct geretourneerd, maar de gegevens kunnen later worden verzonden. De methode XMLSocket.send()
retourneert geen waarde die aangeeft of de gegevens zijn verzonden.
Wanneer u het object XMLSocket niet met de server verbindt via XMLSocket.connect()
), mislukt de bewerking XMLSocket.send()
.
Parameters
object:* — Een XML-object of andere gegevens die naar de server moeten worden verzonden.
|
Gegenereerde uitzondering
IOError — Het object XMLSocket heeft geen verbinding met een server.
|
Verwante API-elementen
close | Gebeurtenis |
flash.events.Event
eigenschap Event.type =
flash.events.Event.CLOSE
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Wordt verzonden wanneer de server de socketverbinding sluit. De gebeurtenis close
wordt alleen verzonden wanneer de server de verbinding sluit. De gebeurtenis wordt niet verzonden wanneer u de methode XMLSocket.close()
aanroept.
Event.CLOSE
definieert de waarde van de eigenschap type
van een close
-gebeurtenisobject.
Deze gebeurtenis heeft de volgende eigenschappen:
Eigenschap | Waarde |
---|---|
bubbles | false |
cancelable | false ; er is geen standaardgedrag om te annuleren. |
currentTarget | Het object dat het gebeurtenisobject actief verwerkt met een gebeurtenislistener. |
target | Het object waarvan de verbinding is gesloten. |
connect | Gebeurtenis |
flash.events.Event
eigenschap Event.type =
flash.events.Event.CONNECT
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Wordt verzonden na een geslaagde aanroep van de methode XMLSocket.connect()
.
Event.CONNECT
definieert de waarde van de eigenschap type
van een connect
-gebeurtenisobject.
Deze gebeurtenis heeft de volgende eigenschappen:
Eigenschap | Waarde |
---|---|
bubbles | false |
cancelable | false ; er is geen standaardgedrag om te annuleren. |
currentTarget | Het object dat het gebeurtenisobject actief verwerkt met een gebeurtenislistener. |
target | Het object Socket of XMLSocket dat een netwerkverbinding tot stand heeft gebracht. |
data | Gebeurtenis |
flash.events.DataEvent
eigenschap DataEvent.type =
flash.events.DataEvent.DATA
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Wordt verzonden nadat onbewerkte gegevens zijn verzonden of ontvangen.
Definieert de waarde van de eigenschaptype
van een gebeurtenisobject data
.
Deze gebeurtenis heeft de volgende eigenschappen:
Eigenschap | Waarde |
---|---|
bubbles | false |
cancelable | false ; er is geen standaardgedrag om te annuleren. |
currentTarget | Het object dat het gebeurtenisobject actief verwerkt met een gebeurtenislistener. |
data | De onbewerkte gegevens worden geladen in Flash Player of Adobe AIR. |
target | Het object XMLSocket dat de gegevens ontvangt. |
ioError | Gebeurtenis |
flash.events.IOErrorEvent
eigenschap IOErrorEvent.type =
flash.events.IOErrorEvent.IO_ERROR
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Wordt verzonden wanneer een invoer-/uitvoerfout optreedt die ertoe leidt dat een verzend- of ontvangstbewerking mislukt.
Definieert de waarde van de eigenschaptype
van een gebeurtenisobject ioError
.
Deze gebeurtenis heeft de volgende eigenschappen:
Eigenschap | Waarde |
---|---|
bubbles | false |
cancelable | false ; er is geen standaardgedrag om te annuleren. |
currentTarget | Het object dat het gebeurtenisobject actief verwerkt met een gebeurtenislistener. |
errorID | Een referentienummer dat aan de specifieke fout is gekoppeld (alleen AIR). |
target | Het netwerkobject dat de invoer-/uitvoerfout ondervindt. |
text | Tekst die moet worden weergegeven als foutbericht. |
securityError | Gebeurtenis |
flash.events.SecurityErrorEvent
eigenschap SecurityErrorEvent.type =
flash.events.SecurityErrorEvent.SECURITY_ERROR
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Wordt verzonden wanneer een aanroep van de methode XMLSocket.connect()
probeert verbinding te maken met een server buiten de beveiligingssandbox van het aanroepende bestand of met een poort lager dan 1024.
SecurityErrorEvent.SECURITY_ERROR
definieert de waarde van de eigenschap type
van een gebeurtenisobject securityError
.
Deze gebeurtenis heeft de volgende eigenschappen:
Eigenschap | Waarde |
---|---|
bubbles | false |
cancelable | false ; er is geen standaardgedrag om te annuleren. |
currentTarget | Het object dat het gebeurtenisobject actief verwerkt met een gebeurtenislistener. |
target | Het netwerkobject dat de beveiligingsfout rapporteert. |
text | Tekst die moet worden weergegeven als foutbericht. |
Verwante API-elementen
- De constructor XMLSocketExample maakt een instantie XMLSocket genaamd
socket
en geeftsocket
door aanConfigureListeners()
(zoals hieronder wordt beschreven). Vervolgens wordt de methodeconnect()
van XMLSocket aangeroepen met de hostnaam "localhost" en poortnummer8080
. - Daarna wordt de methode
configureListeners()
aangeroepen, die listeners toevoegt voor elk van de ondersteunde gebeurtenissen XMLSocket:closeHandler()
: luistert naar de gebeurtenisclose
die wordt verzonden nadat de netwerkverbinding is gesloten.connectHandler()
: luistert naar de gebeurtenisconnect
die wordt verzonden wanneer de netwerkverbinding tot stand is gebracht.dataHandler()
: luistert naar de gebeurtenisdata
die wordt verzonden telkens wanneer XMLSocket nieuwe gegevens ontvangt.progressHandler()
: luistert naar de gebeurtenisprogress
die wordt verzonden wanneersend()
wordt aangeroepen en terwijl de verzending plaatsvindt.securityErrorHandler()
: luistert naar de gebeurtenissecurityError
die wordt verzonden wanneer wordt geprobeerd toegang te verkrijgen tot XMLSocket met een onjuiste instelling voor lokale afspeelbeveiliging of via een poort lager dan 1024.ioErrorHandler()
: luistert naar de gebeurtenisioError
die alleen plaatsvindt wanneer een bewerking om gegevens te verzenden of te ontvangen mislukt.
Opmerkingen:
- U moet het SWF-bestand compileren met Lokale afspeelbeveiliging ingesteld op Alleen netwerk benaderen.
- Dit voorbeeld werkt alleen met een server die op uw domein via poort 8080 wordt uitgevoerd.
- Als u Flash Player 9.0.124.0 of hoger hebt, moet u een bestand met socketbeleid op de server plaatsen dat socketverbindingen toestaat vanaf uw domein naar poort 8080. Meer informatie over het op de server plaatsen van bestanden met socketbeleid vindt u in het volgende onderwerp op het Flash Player Developer Center: Een server voor een bestand met socketbeleid instellen.
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); } } }
Wed Jun 13 2018, 11:42 AM Z