Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Socket security (http://www.flasher.ru/forum/showthread.php?t=115854)

Venya2007 12.09.2008 15:11

Socket security
 
Здравствуйте!помогите решить проблему! почему - то, когда пытаюсь сконектится с помощью Socket выдает ошибку:

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

пробую:
Security.loadPolicyFile("http://192.168.55.1/mmo/crossdomain.xml")
crossdomain.xml:
Код:

<?xml version=”1.0”?>
<cross-domain-policy>
  <allow-access-from domain=”http://192.168.55.3” to-ports=”80,8989” />
</cross-domain-policy>

не помогает! в чем проблема? уже третий час не могу ее решить:(

etc 12.09.2008 15:28

Кроссдоменник надо отдавать по тому же порту, т. е. по 8989.

Venya2007 12.09.2008 15:35

__etc это как? :(

etc 12.09.2008 15:38

Цитата:

Сообщение от Venya2007 (Сообщение 763905)
__etc это как :(

Ну раз вопроса задано не было, то, вероятно, это хелп.

Venya2007 12.09.2008 17:36

Сервер на запрос <policy-file-request/> отправляет мне

'<cross-domain-policy>'#13#10
'<allow-access-from domain="192.168.55.3" to-ports="8989"/>'#13#10
'</cross-domain-policy>'#0

но все равно срабатывает событие SecurityErrorEvent! что не так?

etc 12.09.2008 17:46

Где расположен клиент?

Venya2007 12.09.2008 17:52

Цитата:

Сообщение от __etc (Сообщение 763933)
Где расположен клиент?

Клиента гружу по HTTP с 192.168.55.1, cервер находится на
192.168.55.3! пока тестируем все локально, порт соединения с сервером 8989

etc 12.09.2008 18:19

А сервер закрывает соединение после отправки кроссдоменника?

Venya2007 12.09.2008 18:40

Код:

public class G_Socket extends Socket {
    private var response:String;
    private var txt:TextField

    public function G_Socket(host:String = null, port:uint = 0,t:TextField=null) {
    Security.loadPolicyFile("xmlsocket://192.168.55.3:8989")     
    super(host, port);
    xt=t
    configureListeners();
       
    }

    private function configureListeners():void {
        addEventListener(Event.CLOSE, closeHandler);
        addEventListener(Event.CONNECT, connectHandler);
        addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
        addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
        addEventListener(ProgressEvent.SOCKET_DATA, socketDataHandler);
    }

    private function writeln(str:String):void {
        str += "\n";
        try {
            writeUTFBytes(str);
        }
        catch(e:IOError) {
            trace(e);
        }
    }

   
 
    private function closeHandler(event:Event):void {
      txt.text+="closeHandler: " + event+"\n\n"
     
    }

    private function connectHandler(event:Event):void {
        txt.text+=("connectHandler: " + event)+"\n\n";
     
    }

    private function ioErrorHandler(event:IOErrorEvent):void {
        txt.text+=("ioErrorHandler: " + event)+"\n\n";
    }

    private function securityErrorHandler(event:SecurityErrorEvent):void {
        txt.text+=("securityErrorHandler: " + event)+"\n\n";
    }

    private function socketDataHandler(event:ProgressEvent):void {
        txt.text+=("socketDataHandler: " + event)+"\n\n";
     
    }
}

Потом создаю сокет:
Код:

var socket:G_Socket = new G_Socket("192.168.55.3", 8989,txt);
кросдомменик получаю такой:
<cross-domain-policy>

<allow-access-from domain="192.168.55.3" to-ports="8989" />

</cross-domain-policy>
и соединение при с сокетом закрывается!

Но все равно срабатывает событие SecurityErrorEvent :(:(

etc 12.09.2008 18:47

loadPolicyFile не нужен. Попробуйте указать домен «*» и порт «*».
Возможно, формат XML кроссдоменника неправильный.


Часовой пояс GMT +4, время: 11:15.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.