Conexion a sockets

1 view
Skip to first unread message

Jose

unread,
Feb 2, 2009, 1:19:06 PM2/2/09
to Flex AIR Venezuela
Muy buenas,

Acabo de descubrir FLEX y AIR y me estoy haciendo una pequeña
aplicación de prueba (un jueguecito de bolsa).
Tengo un pequeño servidor en python que envia datos en XML a las
conexiones por su puerto (9999).
Queria recoger esos datos en un DataGrid en Air, pero no puedo
realizar la conexión:

- He intentado utilizar el HTTPService con url="http://localhost:
9999/" con varios "trace" para ver que pasa pero en el servidor ni
siquiera me aparece un intento de conexión.

- También he intentado una conexión xmlSocket con AC3 desde AIR. Me
creo una clase que contiene esto:
public function SourceData()
{
var xmlsock:XMLSocket = new XMLSocket();
xmlsock.connect("localhost", 9998);
xmlsock.addEventListener(DataEvent.DATA, onData);
xmlsock.addEventListener(Event.CONNECT, traceConnect);
xmlsock.addEventListener(IOErrorEvent.IO_ERROR, traceError);
}


¿Es correcto intentar la conexión con sockets, en la documentación no
he visto nada al respecto pero imagino

Juan

unread,
Feb 2, 2009, 4:30:35 PM2/2/09
to Flex AIR Venezuela
Hola Jose. Nos seria de mucha utilidad que te registraras en el grupo
flexairve. Hacerlo apenas te tomará unos segundos.

Para responder a tu pregunta, deberias intentar recoger el xml con un
objeto URLLoader(url:String). Esta clase carga datos xml desde la
dirección indicada en el parametro url. Una vez cargado el xml en este
objeto, puedes pasarselo a otro objeto XML() para manipularlo como
desees y agregarlo como dataprovider al datagrid que mencionas. Te
pongo algo de codigo de la ayuda de flex donde explican el uso de
estos objetos.

var miXML:XML = new XML(); //declaro un objeto XML();
var XML_URL:String = "http://www.example.com/Sample3.xml"; //declaro
un String con la dirección de xml
var miXMLURL:URLRequest = new URLRequest(XML_URL); //declaro un
objeto URLRequest para hacer la solicitud del xml al servidor
var miLoader:URLLoader = new URLLoader(miXMLURL); //
declaro el objeto URLLoader para cargar el xml del servidor. Le indico
el servidor
miLoader.addEventListener("complete", xmlLoaded); //
agrego un handler al evento complete para utilizar el xml una vez se
haya descargado

function xmlLoaded(event:Event):void
{
miXML = XML
(miLoader.data); //inicio
el objeto declarado anteriormente con la data del xml
trace("el xml se ha
cargado..."); //indico que
ya el XML esta listo para ser manipulado
}

En el handler podrias asignar el xml en cuestion al datagrid como
dataprovider para llenar dicho datagrid.

Espero que la respuesta te ayude en algo y si no es asi, escribe y
cuentanos que pasó. Recuerda registrarte como miembro de flexairve y
ayudarnos a hacer esta comunidad mas grande. Nos vemos. Don Kenshin.
Reply all
Reply to author
Forward
0 new messages