проблема с гнездом flex4 - PullRequest
0 голосов
/ 29 июня 2010

Я пытаюсь связать мое flash-приложение с моим сервером.Либо проблема в том, что мой код работает на Flash Professional, но я подготовил весь свой интерфейс на Flash Builder, который использует Flex 4 -SDK.Мой код не работает в Flex Project.

Проблема не в файле безопасности.Я не могу решить проблему.Каковы возможные причины?

С уважением.

При необходимости мой код ниже [работает на FlashPro, но не на Flex!]

import flash.net.*;
import flash.events.Event;var host:String = new String("127.0.0.1");
var port:int = 8080;
var securityFile:String = "http://localhost:1755/.../..../s....xml";
var bagli:Boolean = false;

var socket:Socket = null;

var veri:String = new String("----");

btnGonder.addEventListener(MouseEvent.MOUSE_DOWN, tiklantiEvent);

function buildSocket():void
{           
trace("beginning....");
    socket = new Socket();
    socket.addEventListener(Event.CONNECT, onConnect);
    socket.addEventListener(Event.CLOSE, onClose);
    socket.addEventListener(ErrorEvent.ERROR, onError);
    socket.addEventListener(IOErrorEvent.IO_ERROR, onIOError);
    socket.addEventListener(ProgressEvent.SOCKET_DATA, onResponse);


Security.allowDomain(host);

Security.loadPolicyFile(securityFile);


try {
    socket.connect(host, port);
    bagli = true;
    trace("--- connection...");

} catch (error:Error) {

    trace("--- connection failed...");
    socket.close();
}
}


 function send(string:String):void {
    socket.writeUTFBytes(string);
    socket.flush();
}
 function onConnect(event:Event):void {
    trace("connect");
}
 function onClose(event:Event):void {
    trace("closed");
}
 function onError(event:IOErrorEvent):void {
    trace("connection erron");
}
 function onIOError(event:IOErrorEvent):void {
    trace("data error");
}
 function onResponse(event:ProgressEvent):void {
    var string:String = socket.readUTFBytes(socket.bytesAvailable);
    trace(string);
}


function (sender:Event):void {
    trace("clicked button....");
    buildSocket();
    trace("------------------");

}

1 Ответ

0 голосов
/ 29 июня 2010

Вы пытаетесь авторизовать сокетное соединение с помощью файла политики типа контента.Вместо этого вы должны использовать файл политики сокетов.Насколько я помню, синтаксис файла политики такой же, но URL должен начинаться с xmlsocket: // вместо http://. Этот файл не должен обслуживаться через http.

Кроме того, домен хоста и домен из адреса файла политики должны совпадать.Учитывая, что ваш хост указан как 127.0.0.1, измените URL-адрес файла политики на

xmlsocket: //127.0.0.1: 1755

Подробнее см. Рекомендации Adobe для файлов политики .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...