Comunidad de diseño web y desarrollo en internet online

sigo sin poder establecer conexion socket

Citar            
MensajeEscrito el 19 May 2008 11:00 pm
Hola, este es mi segundo post sobre este tema, solo a ver si alguien se "apiada" de mi...
No logro establecer la conexion de socket, tengo mi crossdomain, tengo mi clase estableciendo la conexion.
Desde el pc puedo establecerla a cualquier domain que ponga
Pero una vez arriba salta error de seguridad.

El ejemplo lo corro desde aca
http://www.hableweb.com/ftp/ftp.html

Y no puedo avanzar... :cry:

Por claudia

103 de clabLevel



 

msie
Citar            
MensajeEscrito el 20 May 2008 12:14 am

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 20 May 2008 10:12 am
Hola solisarg (Jorge) gracias por esa aclaracion No quise seguir con el mismo post porque estaba tan largo que podria sacar ganas de participar... No se si hice bien.
Yo la verdad no se que hago mal.
Bueno pero que te voy a contar a ti si tu participaste todo a lo largo.
Gracias mil por estar ahi

Por claudia

103 de clabLevel



 

msie
Citar            
MensajeEscrito el 20 May 2008 09:48 pm
Hola claudia (tocaya). Yo tambien necesitaba utilizar crossdomain, en una aplicion flex3 q se conectaba a un Web Service en .NET. Y los ejemplos que encontre sobre crossdomain no me funcionaban. Pude solucionarlo, chequea este thread a ver si te sirve: http://www.cristalab.com/foros/t56180.html

Por selecters75

51 de clabLevel



Genero:Masculino  

Argentina

msie7
Citar            
MensajeEscrito el 20 May 2008 10:31 pm
Hola Claudio! Gracias pero yo lei tupost y lei este articulo, pero supera mucho mis conocimientos...
Me podias guiar mas?
Que debo corregir?
El cross domain?
La clase que realiza la conexion?

Por claudia

103 de clabLevel



 

msie
Citar            
MensajeEscrito el 20 May 2008 10:43 pm
Yo diria que empieces por el crossdomain (fijate el primer ejemplo del link), con el formato que yo habia encontrado en otros ejemplos por la web, no podia conectar mi aplicacion Flex (en un dominio) con el WS (en otro dominio)...
En mi caso, el allow-http-request-headers-from hizo la magia :)
Te diria que pruebes primero asi a ver si funciona y despues vayas restringiendo:

Código :

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM
"http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">

<cross-domain-policy>
   <site-control permitted-cross-domain-policies="all"/>
   <allow-access-from domain="*" secure="false"/>
   <allow-http-request-headers-from domain="*" headers="*" secure="false"/>
</cross-domain-policy>


Sino, segui preguntando que vemos que hacemos

Por selecters75

51 de clabLevel



Genero:Masculino  

Argentina

msie7
Citar            
MensajeEscrito el 20 May 2008 11:11 pm
Gracias Claudio por ayudarme.
Te cuento que no me funciono...
Aqui pego la funcion que realiza la conexion

Código :

public function initialize():void{
            if(ENABLE_TRACE) trace(\\\\\\\"Tratando de conectar...\\\\\\\"+_host);
            Globales._messageField.addText(\\\\\\\"tratando de conectar:\\\\\\\"+_host+\\\\\\\"port:\\\\\\\"+_port+\\\\\\\" policyPort:\\\\\\\"+_policyPort);



             //Globales._messageField.reset();
             _socket=new Socket();
             try {
                Globales._messageField.addText(\\\\\\\"estoy en try\\\\\\\");
                //Security.loadPolicyFile(\\\\\\\"xmlsocket://\\\\\\\"+_host+\\\\\\\":\\\\\\\"+_policyPort);
                Security.loadPolicyFile(\\\\\\\"http://\\\\\\\"+_host+\\\\\\\"/crossdomain.xml\\\\\\\");

             }
             catch (e:IOError) {
                 Globales._messageField.addText(\\\\\\\"estoy en catch\\\\\\\");
            }finally{
                 Globales._messageField.addText(\\\\\\\"estoy en finally\\\\\\\");
                 conectar();
            }
         }

Por claudia

103 de clabLevel



 

msie
Citar            
MensajeEscrito el 21 May 2008 02:25 am
A ver, el crossdomain.xml por lo menos como YO lo estoy usando, NO lo estoy cargando en ningun lado. Flash (cliente en dominio A), si encuentra el crossdomain.xml tal como te lo pase, en el servidor (dominio B) donde tengo mis webservices, permite la conexion. Si elimino el crossdomain, tengo el error de security sandbox.
Que estas usando? Flash? FLEX?. Si es FLEX, porque no empezas primero por los ejemplos que incluye flex (http://learn.adobe.com/wiki/display/Flex/Part+II.+Exchanging+Data usando el crossdomain como yo te digo en TU servidor, no en los del ejemplo). Si eso funciona, ahi proba una conexion socket...


Seria bueno saber en el debug, en que linea de tu codigo tenes el error

Por selecters75

51 de clabLevel



Genero:Masculino  

Argentina

msie7
Citar            
MensajeEscrito el 21 May 2008 10:22 am
Hola C, te cuento.
No utilizo Flex pense que podia hacerlo en Flash. Pero bueno, si en Flex funciona me voy a poner a estudiarlo.

Saque el policyLoad.
Ahora las lineas creo yo mas importantes son:
Mi crossdomain.xml identico al tuyo

Código :

<?xml version=\\\\\\\"1.0\\\\\\\"?>
<!DOCTYPE cross-domain-policy SYSTEM \\\\\\\"http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd\\\\\\\">
   <cross-domain-policy>
   <site-control permitted-cross-domain-policies=\\\\\\\"all\\\\\\\"/>
   <allow-access-from domain=\\\\\\\"*\\\\\\\" secure=\\\\\\\"false\\\\\\\"/>
   <allow-http-request-headers-from domain=\\\\\\\"*\\\\\\\" headers=\\\\\\\"*\\\\\\\" secure=\\\\\\\"false\\\\\\\"/>
   </cross-domain-policy>


La funcion que conecta

Código :

public function conectar(){
            Globales._messageField.addText(\\\\\\\"estoy en conectar\\\\\\\");
            try{
                _socket.connect(_host,_port);
            }catch(e:SecurityError){
                Globales._messageField.addText(\\\\\\\"problemas de conexion\\\\\\\");
            }finally{
                  configureListeners();
            }
        }


El error salta en el listener que pongo en negrita:

Código :

        private function configureListeners():void{
            //Globales._messageField.reset();
            Globales._messageField.addText(\\\\\\\"configurando listeners\\\\\\\");
            _socket.addEventListener(ProgressEvent.SOCKET_DATA,progressDataHandler);
            _socket.addEventListener(Event.CLOSE,closeHandler);
            _socket.addEventListener(Event.CONNECT, connectHandler);
            _socket.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
            [b]_socket.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);[/b]
         }

Por claudia

103 de clabLevel



 

msie
Citar            
MensajeEscrito el 21 May 2008 02:49 pm
Clau!
Pense que podrias estar usando FLEX, por eso mi ejemplo.
Me mataste realmente, pense que el error lo tendrias en .CONNECT y no en SECURITY_ERROR. Que tenes en securityErrorHandler? cual es el mensaje del error? SI es posible, pasa tu fla y librerias y lo vemos.

Por selecters75

51 de clabLevel



Genero:Masculino  

Argentina

msie7
Citar            
MensajeEscrito el 21 May 2008 04:58 pm

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 21 May 2008 06:30 pm
Muchas gracias Jorge!
Estuve leyendo pero debo leerlo mas veces y consultar con el que maneja la configuracion del servidor, creo.
Ya te cuento!

Por claudia

103 de clabLevel



 

msie

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.