So beheben Sie diesen (wahrscheinlich) domänenübergreifenden Richtlinienfehler mithilfe von Flash, Socket.IO und NodeJS

Error #2044: Unhandled SecurityErrorEvent:. text=Error #2048: Security sandbox violation: http://kipos.bluecodestudio.com/holdthebomb/HoldTheBombWeb.swf cannot load data from http://23.29.126.76:8000/socket.io/1/?t=1356891827452.
    at io::Socket/doHandshake()[/Users/airrider3/github/AS3-Socket.IO-XHR-Polling/xhr-polling/src/io/Socket.as:139]
    at io::Socket/connect()[/Users/airrider3/github/AS3-Socket.IO-XHR-Polling/xhr-polling/src/io/Socket.as:110]
    at io::Socket()[/Users/airrider3/github/AS3-Socket.IO-XHR-Polling/xhr-polling/src/io/Socket.as:90]
    at io::IO$/connect()[/Users/airrider3/github/AS3-Socket.IO-XHR-Polling/xhr-polling/src/io/IO.as:36]
    at MainController/endOfbluecodeSplash()[/Users/airrider3/Dropbox/Projects/Kipos/Minigames/HoldTheBombWeb/src/MainController.as:41]
    at bluecodeSplash/endOfSplash()[/Users/airrider3/Dropbox/Projects/Kipos/Minigames/HoldTheBombWeb/src/bluecodeSplash.as:55]
    at Function/http://adobe.com/AS3/2006/builtin::apply()
    at com.greensock.core::TweenCore/complete()[D:\_Flash\_AS3\src\com\greensock\core\TweenCore.as:178]
    at com.greensock::TweenLite/renderTime()[D:\_Flash\_AS3\src\com\greensock\TweenLite.as:477]
    at com.greensock.core::SimpleTimeline/renderTime()[D:\_Flash\_AS3\src\com\greensock\core\SimpleTimeline.as:93]
    at com.greensock::TweenLite$/updateAll()[D:\_Flash\_AS3\src\com\greensock\TweenLite.as:642]

Ich verwende Flash Builder, ein ActionScript-Projekt, das mithilfe des Moduls Socket.IO eine Verbindung zu einem Server herstellt, auf dem NodeJS ausgeführt wird.

Um Socket.IO mit AS3 zu verbinden, verwende ich die folgende Bibliothekhttps://github.com/sbquinlan/AS3-Socket.IO-XHR-Polling Dies funktioniert perfekt, wenn Sie in lokalem Flash Builder testen.

Wird jedoch auf meiner Domain gehostet [http://kipos.bluecodestudio.com/holdthebomb/], Ich nehme an, es löst dieses SecurityErrorEvent aus, weil ich keine crossdomain.xml-Dateien richtig verwende? Um ehrlich zu sein, bin ich mit diesem Thema noch nie klar gekommen, daher bin ich mir nicht sicher, ob dies der Fehler ist.

In jedem Fall habe ich die folgende crossdomain.xml-Datei:

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "/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>

Ich habe es an verschiedenen Stellen auf meinem Server. (Sollte es auf dem Hosting-Client sein?). Ja, das Spiel wird auf bluecodestudio.com gehostet, während sich der Server des Spiels auf der IP 23.29.126.76 befindet und auf dem Port 8000 ausgeführt wird.

Wenn es sich um einen domänenübergreifenden Richtlinienfehler handelt, kann jemand erklären, wie das Problem behoben werden kann?

Danke für Ihre Aufmerksamkeit.

Update 1:

Ich habe auf Port 843 einen Server eingerichtet, der die Crossdomain-Datei empfängt, aber ich kann sehen, dass Flash nicht versucht, sie zu laden. (Ich habe den Befehl getestetpython -c 'print "<policy-file-request/>%c" % 0' | nc 23.29.126.76 843 und überprüfte, wie der Policy Server tatsächlich funktioniert.

Warum versucht die SWF-Datei nicht, eine domänenübergreifende Richtliniendatei zu laden?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage