Paket | flash.net |
Klass | public class XMLSocket |
Arv | XMLSocket EventDispatcher Object |
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9, Flash Lite 4 |
- XML-meddelanden skickas över en TCP/IP-strömsocketanslutning med full duplex.
- Varje XML-meddelande är ett komplett XML-dokument som avslutas av en nollbyte (0).
- Ett obegränsat antal XML-meddelanden kan skickas och tas emot via en enda XMLSocket-anslutning.
Det kan vara svårt att ställa in en server för att kommunicera med XMLSocket-objektet. Om programmet inte kräver realtidsinteraktivitet använder du klassen URLLoader i stället för XMLSocket.
För att kunna använda metoderna i klassen XMLSocket använder du först konstruktorn new XMLSocket
och skapar ett XMLSocket-objekt.
SWF-filer i sandlådan lokal-med-filsystem kan eventuellt inte använda socketar.
Socketprincipfiler på målvärden specificerar värdarna, från vilka SWF-filerna kan göra socketanslutningar, och till vilka portar som anslutningarna kan göras. Säkerhetskraven med hänsyn till socketprincipfiler har blivit mer stringenta i de sista versionerna av Flash Player. I alla versioner av Flash Player rekommenderar Adobe att en socketprincipfil används, och i vissa situationer krävs en sådan användning. Om du använder XMLSocket-objekt måste du därför säkerställa att målvärden har en socketprincipfil om det krävs.
Följande lista sammanfattar kraven för socketprincipfiler i olika versioner av Flash Player:
- I Flash Player 9.0.124.0 och senare versioner krävs en socketprincipfil för XMLSocket-anslutningar. Det krävs en socketprincipfil på målvärden oavsett vilken port du ansluter till. Den kräver även att du ansluter till en port på samma värd som kör SWF-filen.
- I Flash Player-versionerna 9.0.115.0 och tidigare krävs en socketprincipfil hos målvärden om du vill ansluta till ett portnummer under 1024 eller om du vill ansluta till en annan värd än den som kör SWF-filen.
- I Flash Player 9.0.115.0 visas en varning när Flash Debug Player används även om en socketprincipfil inte krävs och målvärden inte kör en socketprincipfil.
I Adobe AIR begränsas emellertid inte innehåll i säkerhetssandlådan application
(innehåll som installeras med AIR-programmet) av de här säkerhetsbegränsningarna.
Mer information om säkerhet finns i avsnittet Security på Flash Player Developer Center.
Relaterade API-element
Egenskap | Definieras med | ||
---|---|---|---|
connected : Boolean [skrivskyddad]
Anger om det här XMLSocket-objektet är anslutet. | XMLSocket | ||
constructor : Object
En referens till klassobjektet eller konstruktorfunktionen för en given objektinstans. | Object | ||
timeout : int
Indikerar antal millisekunder som du behöver vänta för en anslutning. | XMLSocket |
Metod | Definieras med | ||
---|---|---|---|
Skapar ett nytt XMLSocket-objekt. | XMLSocket | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registrerar ett händelseavlyssnarobjekt för ett EventDispatcher-objekt så att avlyssnaren får meddelanden om händelser. | EventDispatcher | ||
Stänger anslutningen som anges av XMLSocket-objektet. | XMLSocket | ||
Upprättar en anslutning till den angivna Internetvärden med den angivna TCP-porten. | XMLSocket | ||
Skickar en händelse till händelseflödet. | EventDispatcher | ||
Kontrollerar om EventDispatcher-objektet har några avlyssnare registrerade för en viss typ av händelse. | EventDispatcher | ||
Anger om det finns en egenskap angiven för ett objekt. | Object | ||
Anger om en instans av klassen Object finns i prototypkedjan för objektet som anges som parameter. | Object | ||
Anger om den angivna egenskapen finns och är uppräkningsbar. | Object | ||
Tar bort en avlyssnare från EventDispatcher-objektet. | EventDispatcher | ||
Konverterar XML-objektet eller data som anges i parametern object till en sträng och överför den till servern följd av en nollbyte (0). | XMLSocket | ||
Anger tillgänglighet för en dynamisk egenskap för slingåtgärder. | Object | ||
Returnerar det här objektets strängrepresentation, formaterad i enlighet med språkspecifika konventioner. | Object | ||
Returnerar det angivna objektets strängbeteckning. | Object | ||
Returnerar det angivna objektets primitiva värde. | Object | ||
Kontrollerar om en händelseavlyssnare är registrerad för det här EventDispatcher-objektet eller något av dess överordnade objekt för den angivna händelsetypen. | EventDispatcher |
Händelse | Sammanfattning | Definieras med | ||
---|---|---|---|---|
[utsändningshändelse] Skickas när Flash Player eller AIR får operativsystemfokus och blir aktivt. | EventDispatcher | |||
Skickas när servern stänger socketanslutningen. | XMLSocket | |||
Skickas efter ett lyckat anrop till metoden XMLSocket.connect(). | XMLSocket | |||
Skickas när råa data skickas eller tas emot. | XMLSocket | |||
[utsändningshändelse] Skickas när Flash Player eller AIR förlorar operativsystemfokus och blir inaktivt. | EventDispatcher | |||
Skickas om ett in-/utdatafel orsakar en misslyckad åtgärd för att skicka eller ta emot data. | XMLSocket | |||
Skickas om ett anrop till metoden XMLSocket.connect() försöker ansluta till antingen en server utanför anroparens säkerhetssandlåda eller till en port lägre än 1024. | XMLSocket |
connected | egenskap |
connected:Boolean
[skrivskyddad] Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Anger om det här XMLSocket-objektet är anslutet. Du kan även kontrollera om anslutningen gick bra genom att registrera händelserna connect
och ioError
.
Implementering
public function get connected():Boolean
Relaterade API-element
timeout | egenskap |
timeout:int
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Indikerar antal millisekunder som du behöver vänta för en anslutning.
Om anslutningen inte lyckas inom specificerad tid, avbryts anslutningarna. Standardvärdet är 20 000 (tjugo sekunder).
Implementering
public function get timeout():int
public function set timeout(value:int):void
XMLSocket | () | Konstruktor |
public function XMLSocket(host:String = null, port:int = 0)
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Skapar ett nytt XMLSocket-objekt. Om inga parametrar anges skapas en socket som är frånkopplad. Om parametrarna anges görs ett försök att ansluta till angiven värdenhet och port.
Obs! Du bör absolut använda konstruktorformen utan parametrar, sedan lägga till händelseavlyssnare och anropa metoden connect
med parametrarna host
och port
. Denna sekvens garanterar att alla händelseavlyssnare fungerar ordentligt.
host:String (default = null ) — Ett fullständigt kvalificerat DNS-domännamn eller en IP-adress i formatet .222.333.444. I Flash Player 9.0.115.0 och AIR 1.0 och senare kan du ange IPv6-adresser som till exempel rtmp://[2001:db8:ccc3:ffff:0:444d:555e:666f]. Du kan också ange null för att ansluta till värdservern där SWF-filen finns. Om SWF-filen som skickar det här anropet körs i en webbläsare måste host finnas på samma domän som SWF-filen.
| |
port:int (default = 0 ) — Värdenhetens TCP-portnummer som används för att upprätta en anslutning. I Flash Player 9.0.124.0 och senare versioner, måste målvärden köra en socketprincipfil som specifierar att socketanslutningarna tillåts från värden som kör SWF-filen till specificerad port. I tidigare versioner av Flash Player krävs en socketprincipfil enbart om du vill ansluta till en port under nummer 1024, eller om du vill ansluta till en annan värd än den som kör SWF-filen.
|
Relaterade API-element
close | () | metod |
public function close():void
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Stänger anslutningen som anges av XMLSocket-objektet. Händelsen close
skickas endast om servern stänger anslutningen; den skickas inte när du anropar metoden close()
.
Relaterade API-element
connect | () | metod |
public function connect(host:String, port:int):void
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Upprättar en anslutning till den angivna Internetvärden med den angivna TCP-porten.
Om du anger null
för parametern host
är den värd som kontaktas samma som den som filen som anropar XMLSocket.connect()
finns på. Om till exempel den anropande filen lästes in från www.adobe.com och specificerade null
för värdparametern, innebär det att du är ansluten till www.adobe.com.
Du kan förhindra att metoden används av en fil genom att ange parametern allowNetworking
i object
- och embed
-taggarna på den HTML-sida där SWF-innehållet finns.
Mer information finns i avsnittet Security på Flash Player Developer Center.
Parametrar
host:String — Ett fullständigt kvalificerat DNS-domännamn eller en IP-adress i formatet 111.222.333.444. Du kan också ange null för att ansluta till värdservern där SWF-filen finns. Om den anropande filen är en SWF-fil som körs i en webbläsare måste host finnas i samma domän som filen.
| |
port:int — Värdenhetens TCP-portnummer som används för att upprätta en anslutning. I Flash Player 9.0.124.0 och senare versioner, måste målvärden köra en socketprincipfil som specifierar att socketanslutningarna tillåts från värden som kör SWF-filen till specificerad port. I tidigare versioner av Flash Player krävs en socketprincipfil enbart om du vill ansluta till en port under nummer 1024, eller om du vill ansluta till en annan värd än den som kör SWF-filen.
|
Händelser
securityError: — En anslutningsåtgärd försökte ansluta till en värd utanför anroparens säkerhetssandlåda eller till en port som kräver en socketprincipfil. Undvik båda dessa problem genom att använda en socketprincipfil på målvärden.
| |
data: — Skickas när råa data har tagits emot.
| |
connect: — Skickas när en nätverksanslutning har upprättats.
|
Utlöser
SecurityError — Lokala otillförlitliga filer kanske inte kan kommunicera med Internet. Undvik begränsningen genom att omklassificera filen som lokal-med-nätverk eller tillförlitlig.
| |
SecurityError — Du kan inte ange ett högre socketportnummer än 65535.
|
Relaterade API-element
send | () | metod |
public function send(object:*):void
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Konverterar XML-objektet eller data som anges i parametern object
till en sträng och överför den till servern följd av en nollbyte (0). Om object
är ett XML-objekt är strängen dess XML-textbeteckning. Send-åtgärden är asynkron. Den returnerar direkt, men data kan skickas vid ett senare tillfälle. Metoden XMLSocket.send()
returnerar inte ett värde som anger om data kunde skickas.
Om du inte ansluter objektet XMLSocket till servern via XMLSocket.connect()
misslyckas åtgärden XMLSocket.send()
.
Parametrar
object:* — Ett XML-objekt eller andra data som ska överföras till servern.
|
Utlöser
IOError — Objektet XMLSocket är inte anslutet till servern.
|
Relaterade API-element
close | Händelse |
flash.events.Event
egenskap Event.type =
flash.events.Event.CLOSE
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Skickas när servern stänger socketanslutningen. Händelsen close
skickas endast om servern stänger anslutningen; den skickas inte när du anropar metoden XMLSocket.close()
.
Event.CLOSE
-konstanten definierar värdet på type
-egenskapen i ett close
-händelseobjekt.
Den här händelsen har följande egenskaper:
Egenskap | Värde |
---|---|
bubbles | false |
cancelable | false ; det finns inget standardbeteende att avbryta. |
currentTarget | Det objekt som aktivt behandlar Event-objektet med en händelseavlyssnare. |
target | Det objekt vars anslutning har stängts. |
connect | Händelse |
flash.events.Event
egenskap Event.type =
flash.events.Event.CONNECT
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Skickas efter ett lyckat anrop till metoden XMLSocket.connect()
.
Event.CONNECT
-konstanten definierar värdet på type
-egenskapen för ett connect
-händelseobjekt.
Den här händelsen har följande egenskaper:
Egenskap | Värde |
---|---|
bubbles | false |
cancelable | false ; det finns inget standardbeteende att avbryta. |
currentTarget | Det objekt som aktivt behandlar Event-objektet med en händelseavlyssnare. |
target | Det Socket- eller XMLSocket-objektet som har upprättat en nätverksanslutning. |
data | Händelse |
flash.events.DataEvent
egenskap DataEvent.type =
flash.events.DataEvent.DATA
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Skickas när råa data skickas eller tas emot.
Definierar värdet för ettdata
-händelseobjekts type
-egenskap.
Den här händelsen har följande egenskaper:
Egenskap | Värde |
---|---|
bubbles | false |
cancelable | false ; det finns inget standardbeteende att avbryta. |
currentTarget | Det objekt som aktivt behandlar Event-objektet med en händelseavlyssnare. |
data | Rådata läses in i Flash Player eller Adobe AIR. |
target | XMLSocket-objektet tar emot data. |
ioError | Händelse |
flash.events.IOErrorEvent
egenskap IOErrorEvent.type =
flash.events.IOErrorEvent.IO_ERROR
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Skickas om ett in-/utdatafel orsakar en misslyckad åtgärd för att skicka eller ta emot data.
Definierar värdet för ettioError
-händelseobjekts type
-egenskap.
Den här händelsen har följande egenskaper:
Egenskap | Värde |
---|---|
bubbles | false |
cancelable | false ; det finns inget standardbeteende att avbryta. |
currentTarget | Det objekt som aktivt behandlar Event-objektet med en händelseavlyssnare. |
errorID | Ett referensnummer som associeras med det specifika felet (enbart AIR). |
target | Objektet är med om ett in-/utdatafel. |
text | Text som visas som felmeddelande. |
securityError | Händelse |
flash.events.SecurityErrorEvent
egenskap SecurityErrorEvent.type =
flash.events.SecurityErrorEvent.SECURITY_ERROR
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Skickas om ett anrop till metoden XMLSocket.connect()
försöker ansluta till antingen en server utanför anroparens säkerhetssandlåda eller till en port lägre än 1024.
SecurityErrorEvent.SECURITY_ERROR
definierar värdet för ett securityError
-händelseobjekts type
-egenskap.
Den här händelsen har följande egenskaper:
Egenskap | Värde |
---|---|
bubbles | false |
cancelable | false ; det finns inget standardbeteende att avbryta. |
currentTarget | Det objekt som aktivt behandlar Event-objektet med en händelseavlyssnare. |
target | Nätverksobjektet rapporterar säkerhetsfelet. |
text | Text som visas som felmeddelande. |
Relaterade API-element
- Med XMLSocketExample-konstruktorn skapas XMLSocket-instansen
socket
som överförsocket
tillConfigureListeners()
(beskrivs nedan). Sedan anropas metodenconnect()
för XMLSocket via värdnamnet "localhost" och portnumret8080
. - Därefter anropas metoden
configureListeners()
som lägger till avlyssnare för varje XMLSocket-händelse som används:closeHandler()
: avlyssnar händelsenclose
som skickas när nätverksanslutningen stängsconnectHandler()
: avlyssnar händelsenconnect
som skickas när nätverksanslutningen har upprättatsdataHandler()
: avlyssnar händelsernadata
som skickas varje gång som XMLSocket tar emot nya dataprogressHandler()
: avlyssnar händelsernaprogress
som skickas när ett anrop tillsend()
görs och medan sändningen pågårsecurityErrorHandler()
: avlyssnarsecurityError
-händelser som skickas vid försök att använda XMLSocket med fel lokala säkerhetsinställning för uppspelning eller en port som är lägre än 1024ioErrorHandler()
: avlyssnarioError
-händelser som inträffar endast vid en misslyckad åtgärd för att skicka eller ta emot data.
Obs!
- Du måste kompilera SWF-filen med ”Lokal uppspelningssäkerhet” angiven till ”Använd bara nätverket”.
- Du behöver en server som körs på din domän och som använder port 8080 för att exemplet ska fungera.
- Om du kör Flash Player 9.0.124.0 eller en senare version, behöver du placera en socketprincipfil på din server som tillåter socketanslutninar från din domän till port 8080. Mer information om hur socketprincipfiler körs finns i avsnittet Skapa en socketprincipfilserver på Flash Player Developer Center.
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, 01:40 PM Z