Teniendo un servidor PHP, al conectar a flash con las clase "socket", si lo hacemos probando la película en flash conecta, pero si vamos a HTML no conecta, el error que arroja es:
Código:
Ahora bien, me canse de probarlo en localhost, actualmente tengo el servidor corriendo en mi hosting, una ip a la que se puede acceder de cualquier maquina, igual, el error continua, dudo que sea el socket en PHP, puesto que desde el entorno de pruebas de flash funciona perfectamente[SecurityErrorEvent type="securityError" bubbles=false cancelable=false eventPhase=2 text="Error #2048"]
Una de las dudas que tengo es con la función
Código:
Según flash para el caso de sockets debe ir asíSecurity.loadPolicyFile();
Código:
Pero se debe especificar así "xmlsocket://ip:puerto" o así "xmlsocket://ip:puerto/crossdomain.xml"? según flash cuando uno conecta con socket inmediatamente consulta el puerto 843 en busca del crossdomain, en esta acción envía esto al servidor "<policy-file-request/>", sabiendo esto corrí adicionalmente un server en el puerto 843 y en ningún momento se conectaba ningún cliente, me dio la impresión que ni intenta verificar si existe el crossdomain.Security.loadPolicyFile("xmlsocket://ip:puerto");
Cuando se intenta conectar desde HTML lo logra, pero el servidor luego de unos segundos dice
Código:
Con esto se me ocurre que la conexión se realiza pero no existen "permisos" para leer los datos del clientenuevo cliente conectado Warning: socket_read(): unable to read from socket [104]: Connection reset by peer Warning: socket_recv(): unable to read from socket [107]: Transport endpoint is not connected
Otro detalle que me llamo la atención es "Security.sandboxType", esto es una propiedad READONLY, pero tiene varios valores con respecto al sandbox, nunca entendí como cambiar esta propiedad
Les contare como voy actualmente
Publish settings: access network only
crossdomain.xml:
Código:
actionscript:<?xml version="1.0"?> <!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd"> <cross-domain-policy> <allow-access-from domain="*" to-ports="*" /> </cross-domain-policy>
Código:
Esta persona dice que lo pudo lograr: http://www.actionscript.org/forums/showthread.php3?t=171826Security.allowDomain("midominio.com"); Security.loadPolicyFile("midominio.com/crossdomain.xml"); _miSocket = new Socket(); _miSocket.addEventListener(Event.CONNECT, conectado); _miSocket.addEventListener(IOErrorEvent.IO_ERROR, error); _miSocket.addEventListener(SecurityErrorEvent.SECURITY_ERROR, seguridad); _miSocket.connect('ip_dominio', puerto);
Bueno hasta acá he llegado, no lo he podido lograr fuera del entorno de flash, si alguien logro solucionarlo le agradecería muchísimo, si logro que funcione les comentare como.
Gracias