Znalazłem wiele podobnych postów tutaj, ale żaden nie wydaje się odpowiadać dokładnie temu problemowi.as3 XMLSocket nie żąda pliku zasad
Po prostu próbuję podłączyć XMLSocket do mojego serwera, i około 10 sekund po próbie połączenia, otrzymuję SecurityErrorEvent: Błąd # 2048: naruszenie bezpieczeństwa piaskownicy (nie mogę pobrać danych z ##. ##. ## ##: 9024).
Po stronie serwera, mam skrypt php, który nasłuchuje na porcie 9024. Jestem prawie pewny, że działa poprawnie, ponieważ mogę połączyć się z nim za pomocą innych skryptów php. Ponadto, gdy mój php po stronie klienta tworzy żądanie pliku zasad, mój skrypt serwera zwraca zasadę. Oto 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);
ustawić słuchaczy do gniazda w AS3 przed wywołaniem sock.connect, ale myślę, że cokolwiek pójdzie źle się dzieje, zanim zostaną one wywołane.
Rozumiem, że na drugim Security.loadPolicyFile lub socket.connect powinien spróbować połączyć się z serwerem przy gniazdku 9024 i zażądać pliku zasad. Sądzę, że sock.connect wysłałby żądanie tylko wtedy, gdy nie otrzyma odpowiedzi z portu 843.
Po stronie serwera widać jednak, że nigdy nie uda się nawiązać połączenia. Próbowałem tego z IDE (FlashDevelop) i ze SWF po przesłaniu na serwer.
Spróbowałbym go na porcie 843, ale nie mam uprawnień administratora na moim serwerze. Jeżeli ma to znaczenie, tutaj jest nieco skryptu 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";
$ skarpetka wydaje się być ustawione w porządku, jak mogę połączyć się przy użyciu innego skryptu php, ale to po prostu czeka na zawsze, gdy próbuję się połączyć z AS3 .
Wszelkie sugestie? Czy coś nie rozumiem? Z góry dziękuję.
Dzięki za pomoc, ale niestety nadal nie działa. Oto, co mam teraz w wersji flash: Security.allowInsecureDomain (ip); \t \tSecurity.allowDomain (ip); \t \t \t Security.loadPolicyFile (ip + "/ crossdomain.xml "); \t \t \t sock.connect (ip, 9024), ip =" domena.com ", wszystko łączy się teraz z domeną, a nie z subdomeną – Tyler
Sprawdziłem dziennik na moim serwerze i wygląda podobnie jak plik crossdomain.xml jest pobierany, ale nadal mam ten sam problem. Oto crossdomain.xml: xml version = "1.0"?> cross-domain-policy> –
Tyler