मुझे यहां बहुत सारी पोस्ट मिल गई हैं, लेकिन कोई भी मेरे पास सही समस्या का समाधान नहीं कर रहा है। त्रुटि # 2048::as3 XMLSocket नीति फ़ाइल का अनुरोध नहीं कर रहा है
मैं बस के बाद मैं कनेक्ट करने का प्रयास अपने सर्वर के लिए एक XMLSocket कनेक्ट करने के लिए कोशिश कर रहा हूँ, और के बारे में 10 सेकंड, मैं एक SecurityErrorEvent मिलता है। सुरक्षा सैंडबॉक्स उल्लंघन (## से cannotload डेटा ## ##। । ##: 9024)।
सर्वर-साइड, मेरे पास एक PHP स्क्रिप्ट है जो पोर्ट 9024 के लिए सुनती है। मुझे पूरा यकीन है कि यह सही काम कर रहा है, क्योंकि मैं अन्य php स्क्रिप्ट का उपयोग करके उससे कनेक्ट कर सकता हूं। साथ ही, जब मेरा क्लाइंट-साइड php नीति-फ़ाइल अनुरोध करता है, तो मेरी सर्वर स्क्रिप्ट नीति लौटाती है। यहाँ AS3 है:
private var sock:XMLSocket = new XMLSocket();
// in my connection method
Security.allowDomain("domain.com");
Security.loadPolicyFile("dubDomain.domain.com/crossdomain.xml");
Security.loadPolicyFile("xmlsocket://domain.com:9024");
sock.connect("11.11.11.11", 9024);
मैं sock.connect कॉल करने से पहले AS3 में सॉकेट से श्रोताओं निर्धारित करते हैं, लेकिन मुझे लगता है इससे पहले कि वे ट्रिगर हो जाएगा जो कुछ भी गलत हो जाता है होता है।
मेरी समझ यह है कि दूसरी सुरक्षा .loadPolicyFile, या सॉकेट.कनेक्ट को सॉकेट 9024 पर सर्वर से कनेक्ट करने का प्रयास करना चाहिए और नीति फ़ाइल का अनुरोध करना चाहिए। मेरा मानना है कि सॉक.कनेक्ट केवल पोर्ट 843 से प्रतिक्रिया प्राप्त करने में विफल होने के बाद अनुरोध भेज देगा।
सर्वर अंत में, हालांकि, यह कनेक्ट करने के लिए कोई प्रयास नहीं किया जाता है। मैंने आईडीई (फ्लैशडिवेल) से और सर्वर पर अपलोड किए जाने पर एसएफएफ से यह कोशिश की है।
मैं इसे पोर्ट 843 पर आज़माउंगा, लेकिन मेरे पास मेरे सर्वर पर व्यवस्थापक अधिकार नहीं हैं। यदि यह मायने रखती है, यहाँ PHP स्क्रिप्ट का एक सा है:
$client = socket_accept($sock);
if (socket_getpeername($client, $address, $theirport))
{
echo "Client $address: $theirport is now connected to us\n";
}
$input = socket_read($client, 1024000);
echo "[client] $input";
$ जुर्राब, ठीक स्थापित होने के रूप में मैं एक और php स्क्रिप्ट का उपयोग कर कनेक्ट कर सकते हैं लगता है, लेकिन यह सिर्फ हमेशा के लिए इंतजार कर रहा है जब मैं AS3 के साथ कनेक्ट करने का प्रयास ।
कोई सुझाव? क्या मैं कुछ गलत समझ रहा हूँ? अग्रिम में धन्यवाद।
सहायता के लिए धन्यवाद, लेकिन दुर्भाग्य से, यह अभी भी काम नहीं कर रहा है। फ्लैश में अब मेरे पास क्या है: Security.allowInsecureDomain (ip); \t \t \t Security.allowDomain (ip); \t \t \t सुरक्षा.लोड पॉलिसीफाइल (आईपी + "/ क्रॉसडोमेन।एक्सएमएल "); \t \t \t सॉक.कनेक्ट (आईपी, 9 024); आईपी =" डोमेन.com "; सब कुछ अब सबडोमेन की बजाय डोमेन से कनेक्ट हो रहा है। – Tyler
मैंने अपने सर्वर पर लॉग की जांच की, और ऐसा लगता है जैसे crossdomain.xml फ़ाइल को उठाया जा रहा है, लेकिन मुझे अभी भी एक ही समस्या मिल रही है। यहां crossdomain.xml है: xml संस्करण = "1.0"?> <क्रॉस-डोमेन-नीति> <साइट-नियंत्रित अनुमति-क्रॉस-डोमेन-नीतियां =" सभी "/> <अनुमति-पहुंच-डोमेन से = "*" से-पोर्ट्स = "9024" /> cross-domain-policy> – Tyler