Flashhilfe.de - Flash Community

policy file request [Flash 11]

 


AntwortenRegistrieren Seite1  

lachskopf#1
Benutzerbild von lachskopf
Beiträge: 33
Registriert: Oct 2008

29.05.2012, 19:12

Hallo :)
Ich hab auf meinem PC einen SocketServer laufen und auf meinem Webserver eine SWF mit folgendem Code:

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
var xmlSocket:XMLSocket = new XMLSocket();
xmlSocket.addEventListener(DataEvent.DATA, onIncomingData);
xmlSocket.addEventListener(Event.CLOSE, onConnectionClosed);
xmlSocket.addEventListener(IOErrorEvent.IO_ERROR, onIOError);
connect_btn.addEventListener(MouseEvent.CLICK, onConnectClicked);
send_btn.addEventListener(MouseEvent.CLICK, onSendClicked);

function onIOError(evt:IOErrorEvent){
      trace("IO Error: " + evt);
}
function onConnectionClosed(msg:Event){
      incomingChat_txt.htmlText += "Connection closed";
}
function onConnectClicked(msg:Event) {
     
      incomingChat_txt.htmlText += "Connecting to 84.142.135.125:8080";
      xmlSocket.connect("84.142.135.125", 8080);
     
 
}
function onSendClicked(msg:Event) {
     
      if (sendChat_txt.text.length > 0) {
         
          if(sendChat_txt.text.toLowerCase() == "exit"){
              xmlSocket.send("EXITn");
          } else {
           var stringendo = sendChat_txt.text+"n";
           xmlSocket.send(stringendo);
          }
         
      }
 
      sendChat_txt.text = "";
     
}

function onIncomingData(evt:DataEvent):void {
      incomingChat_txt.htmlText += "n"+evt.data;
}


Wenn ich mich mit dem Server verbinde bekomme ich von der swf den Input "<policy-file-request/>". Ich sende dann zurück:

ActionScript:
1<?xml version="1.0" encoding="UTF-8"?><cross-domain-policy xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.adobe.com/xml/schemas/PolicyFileSocket.xsd"><allow-access-from domain="*" to-ports="*" secure="false" /><site-control permitted-cross-domain-policies="master-only" /></cross-domain-policy>


Doch wenn ich dann versuche über die swf was zu senden, kommt nichts beim server an...
Was mache ich falsch?


Liebe Grüße
vindel#2
Benutzerbild von vindelFlashhilfe.de Moderator
Beiträge: 3000
Wohnort: Köln
Registriert: Oct 2007

31.05.2012, 11:45

Wie ist den dein Request Codiert? Flash erwatet dort NUR eine XML-Codieren, alles andere wird einfach ignoriert. Was ist wenn du dir sonst noch den SECURITY_ERROR und den HTTP_STATUS abfangen lässt, vllt liegt da noch ein Problem drinnen..
public Weltformel(Problem){
      if (Problem gelöst) return Lösung;
      else Weltformel(kleiners Problem);
}
lachskopf#3
Benutzerbild von lachskopf
Beiträge: 33
Registriert: Oct 2008

Themenautor/in

31.05.2012, 12:12

Hi,

Danke erstmal für deine Antwort!

Also den Code sende ich als String zurück :S
Wie codiere ich das denn als xml-Code? Als Output Funktion habe momentan:

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    private void out(String str) {
 
          System.out.println(">> " + str);
          //System.out.println("UTF-8 bytes: " + asHex(str) + " 00");

          try {
              byte[] strBytes = str.getBytes("UTF-8");
              socketOut.write(strBytes);
              socketOut.write(EOF);
              socketOut.flush();
          } catch (UnsupportedEncodingException e) {
 
          } catch (IOException e) {
              throw new RuntimeException(e);
          }
 
      }



Muss ich an der was ändern? SECURITY_ERROR und HTTP_STATUS probiere ich mal.
vindel#4
Benutzerbild von vindelFlashhilfe.de Moderator
Beiträge: 3000
Wohnort: Köln
Registriert: Oct 2007

31.05.2012, 15:18

Es gibt den Content-Type und der Lautet für XML: "text/xml"
in PHP:
ActionScript:
1header ("Content-Type:text/xml");

Somit wird bevor Daten gesendet wird, die Information übertragen um was es sich für ein Dokument handelt.
public Weltformel(Problem){
      if (Problem gelöst) return Lösung;
      else Weltformel(kleiners Problem);
}
lachskopf#5
Benutzerbild von lachskopf
Beiträge: 33
Registriert: Oct 2008

Themenautor/in

31.05.2012, 16:15

Also das abfangen des Security Errors hat zu keiner Ausgabe geführt.
Außer wenn ich den Server runterfahre, dann bekomme ich die Ausgabe:

"[SecurityErrorEvent type="securityError" bubbles=false cancelable=false eventPhase=2 text="Error #2048"]"

Dabei müsste das doch eigentlich durch "Event.CLOSE" abgesichert sein?


Wie man das mit dem Content-Type in Java macht habe ich leider nicht gefunden...
:(

EDIT:
Und das HTTP_STATUS Event konnte ich nicht auf den XMLSocket anwende.
Geändert von lachskopf am 31.05.12 um 16:18 Uhr
vindel#6
Benutzerbild von vindelFlashhilfe.de Moderator
Beiträge: 3000
Wohnort: Köln
Registriert: Oct 2007

01.06.2012, 16:26

Mit serverseitigem Java kenn ich mich leider nicht aus, aber vielleicht hilft dir das:
http://www.oracle.com/technetwork/articles/javaee/ajax-135201.html
oder das
http://www.ibm.com/developerworks/web/library/x-servlets-and-xml/
weiter.
public Weltformel(Problem){
      if (Problem gelöst) return Lösung;
      else Weltformel(kleiners Problem);
}

AntwortenRegistrieren Seite1  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.

 
Ähnliche Beiträge zum Thema
Partner Webseiten: art-and-law.de  Mediengestalter.info   phpwelt.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Impressum
© 1999-2021 Sebastian Wichmann - Flashhilfe.de