Zurück   Flashforum > Flash und Server > Flash mit XML und Webservices

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 20-07-2009, 23:45   #1 (permalink)
Neuer User
 
Registriert seit: Oct 2008
Beiträge: 8
Flash-Socket anwendung geht nicht im Browser

Huhu ihr Lieben,

ich hab hier aus einem anderen Beitrag ein xml-socket script gefunden als anwendung klappt das ganze auch super, nur leider nicht, wenn ich es im browser aufrufe, sowohl über server als auch ganz normal über das dateisystem.

Code:
stop();

_root.hostname = "localhost";//Connectdomain Config
_root.port = "843";// Connectport Config

myXML = new XMLSocket();
myXML.onConnect = handleConnect;
myXML.onXML = handleXML;
myXML.onClose = handleDisconnect;
myXML.connect("localhost", 843);

function handleConnect(connectionStatus) {
	connectionStatus ? trace("Connected.") : trace("Connection failed.");
}
function handleXML(xmlObject) {
	trace("Object recieved:: "+xmlObject);
}
function sendXML(textToSend) {
	myXML.send(textToSend);
}
function handleDisconnect() {
	trace("Connection lost.");
}
function closeConnection() {
	trace("Closing connection to server.");
	myXML.close();
}

sendXML("test");
irgendwo stand was von wegen PolicyFile. wozu brauch man die denn genau? und was ist mit crossdomain.xml gemeint? kann mir da vllt kurz jemand helfen ?
EnemyArea ist offline   Mit Zitat antworten
Alt 21-07-2009, 09:58   #2 (permalink)
aus Berlin
 
Registriert seit: Feb 2002
Ort: Berlin
Beiträge: 516
Zitat:
ein xml-socket script gefunden


Hast du überhaupt eine Ahnung was ein Socket ist ?
ArBr ist offline   Mit Zitat antworten
Alt 21-07-2009, 11:19   #3 (permalink)
Neuer User
 
Registriert seit: Oct 2008
Beiträge: 8
ja sicher.... ich hab ja auch einen socket server geschrieben. nur mit dem flash sockets komm ich nicht klar. wie gesagt, wenn ich es im flashplayer starte läuft das super, nur wenn ich es in die webseite einbinde klappt das nicht. das mit der PolicyFile hab ich nun auch schon gemacht. Der server sendet die jetzt auch zurück, leider ohne effekt.
EnemyArea ist offline   Mit Zitat antworten
Alt 21-07-2009, 11:54   #4 (permalink)
aus Berlin
 
Registriert seit: Feb 2002
Ort: Berlin
Beiträge: 516
suche einfach mal nach crossdomain oder crossdomain.xml
ArBr ist offline   Mit Zitat antworten
Alt 21-07-2009, 12:15   #5 (permalink)
Neuer User
 
Registriert seit: Oct 2008
Beiträge: 8
hab jetzt auch noch eine im root ordner des webservers abgelegt mit dem inhalt:

Code:
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
    <allow-access-from domain="*"/>
</cross-domain-policy>
immer noch nix...
EnemyArea ist offline   Mit Zitat antworten
Alt 21-07-2009, 16:00   #6 (permalink)
Neuer User
 
Registriert seit: Oct 2008
Beiträge: 8
Ok, hab nochmal etwas rumgebastelt:

Code:
import XMLSocketExample;
var Client:XMLSocketExample = new XMLSocketExample();
Client.send("Bla");
diesmal in as3 das ist der code für den film.
dann gibts noch eine kleine as datei:

Code:
package {
    import flash.display.Sprite;
    import flash.events.*;
    import flash.net.Socket;

    public class XMLSocketExample extends Sprite {
        private var hostName:String = "localhost";
        private var port:uint = 843;
        private var socket:Socket;

        public function XMLSocketExample() {
            socket = new Socket();
            socket.connect(hostName, port);
        }

        public function send(data:String):void {		
			socket.writeUTFBytes(data);
          	socket.flush();
        }

    }
}
der server empfängt die anfrage vom client: <policy-file-request/>
der server sendet das zurück:
Code:
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<site-control permitted-cross-domain-policies="master-only"/>
<allow-access-from domain="*" to-ports="*" />
</cross-domain-policy>
danach sollte der server eigentlich bla empfangen. tut sich nix. erst nachdem ich dann die flash-anwendung zu mache kriegt der server plötzlich 'bla' gesendet... aber immer erst wenn ich es schließe. was soll das ?
EnemyArea ist offline   Mit Zitat antworten
Alt 21-07-2009, 16:14   #7 (permalink)
aus Berlin
 
Registriert seit: Feb 2002
Ort: Berlin
Beiträge: 516
wenn du crossdomain Abfrage mit allen anderen Sachen kombinieren willst wird das etwas kompliziert sein. Crossodmain hat mit deinem Socket eigentlich wenig gemeinsam ... die Crossdomain Daten braucht ja nur der Flashplayer

nimm einfach crossdomain.xml wenn du so eine Möglichkeit hast.


Ich habe mal vor ca. 2 Jahren ein XMLSocket Server in C# programmiert und habe mich damit auch eine Weile rumgeschlagen.
ArBr ist offline   Mit Zitat antworten
Alt 21-07-2009, 16:29   #8 (permalink)
Neuer User
 
Registriert seit: Oct 2008
Beiträge: 8
wie meinste ich soll nur die crossdomain.xml nehmen? soweit ich es verstanden habe, lädt flash diese ja durch den server.

ps: es wird immer komischer. der ie7 sendet 1x was an den server danach nicht mehr und der ff macht erst was, wenn man den zu macht .
EnemyArea ist offline   Mit Zitat antworten
Alt 21-07-2009, 16:49   #9 (permalink)
aus Berlin
 
Registriert seit: Feb 2002
Ort: Berlin
Beiträge: 516
ich habe schon geschrieben
suche hier im Forum nach crossdomain oder crossdomain.xml
dann verstehst du auch was ich meine. Ich will nicht das erklären was schon 1000000 mal überal im Netz steht

Zitat:
es wird immer komischer
wirklich komisch wird wenn du mal auf Linuxsystem mit Flash & Sockets spielst ...

Geändert von ArBr (21-07-2009 um 16:56 Uhr)
ArBr ist offline   Mit Zitat antworten
Alt 21-07-2009, 18:03   #10 (permalink)
Neuer User
 
Registriert seit: Oct 2008
Beiträge: 8
ok, scheinbar klappts nun, ka wieso das einzige problem was ich noch habe ist, das der erst verbindungen zum server zulässt, nachdem der ganze film durchgelaufen ist. sprich

Code:
import XMLSocketExample;
import flash.system.Security;

this.loaderInfo.addEventListener(Event.COMPLETE, onInhaltGeladen);
var Client:XMLSocketExample = null;
function onInhaltGeladen(e:Event){
	Security.allowDomain("*");
	Security.loadPolicyFile("xmlsocket://127.0.0.1:843");
	Client = new XMLSocketExample();
	Client.send("Hallo Server!");
}
wird vor allem ausgeführt. das ist leider falsch wenn ich ein button mache und da den code reinschreibe und dann darauf klicke gehts. ich möchte das aber automatisch haben. das Event.COMPLETE scheint aber zu früh aufgerufen zu werden

edit: außerdem fragt der flash-client 2x nach der PolicyFile. einmal wenn ich Security.loadPolicyFile("xmlsocket://127.0.0.1:843"); aufrufe und einmal wenn alles geladen wurde...

Geändert von EnemyArea (21-07-2009 um 18:06 Uhr)
EnemyArea ist offline   Mit Zitat antworten
Alt 21-07-2009, 20:23   #11 (permalink)
aus Berlin
 
Registriert seit: Feb 2002
Ort: Berlin
Beiträge: 516
Warum willst du crossdomain unter Port 843 abfragen? Kannst du nicht einfach eine crossdomain.xml per http (80) abrufen ?
ArBr ist offline   Mit Zitat antworten
Alt 21-07-2009, 23:54   #12 (permalink)
Neuer User
 
Registriert seit: Oct 2008
Beiträge: 8
ok, aber der fragt automatisch den server nach der PolicyFile, die schickt der auch zurück. jetzt gilt es nur noch das problem mit der reihenfolge zu lösen. die sockets gehen soweit ja
EnemyArea ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 09:41 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele