PDA

Ver la Versión Completa : Como saber quien se conecta a mi aplicacion ios firemonkey


jacobobo
18-07-2013, 04:52:55
Hola amigos, necesito un poco de orientacion , tengo una aplicacion a medio terminar para ios firemonkey, cuando accesan a mi aplicacion inmediatamente hace una consulta a una base de datos remota mysql y obtiene resultados mi aplicacion, como saber quien se conecta a mi aplicacion y en ese momento poderle mandar desde mi servidor atravez del componente udp de indy , algunos parametros al usuario que esta haciendo uso de mi aplicacion.

la aplicacion al momento de entrar, le pide usuario y contraseña al usuario lo valida , por lo que tengo una tabla , donde tengo el registro de la gente usuario y contraseña que esta en lienea en ese momento.... pero como saber que direccion ip tiene el que se conecta... para poder enviarle atravez de udp o tcp algun parametro , solamente a ese usuario. para poder tener comuncacion mas directa y sin que este haciendo el cliente muchas consultas a la bsae de datos... no se si me explique.

ojala me puedan dar una ayudadita.

saludos.

DarkDudae
21-07-2013, 03:05:22
Lo primero, es preguntarte si esa conexión con MySQL es directa o lo haces a través de algún datasnap. Te pregunto esto porque si es una conexión directa, es bastante inseguro pues cualquiera podría monitorizar el tráfico y conseguir el user y el password remotos de tu base de datos.

Dicho esto, he de confesar que no soy un experto en este tipo de entornos, pero para averiguar la IP, se me ocurre que usando los componentes Indi (IndiHTTP) cargues alguna web del estilo de cualesmiip y parsees el resultado de dicha web. Así ya tendrás tu IP pública.

Si usas un datasnap, en la autentificación le puedes pasar dicho parámetro o bien simplemente ingresarlo con el INSERT en el que registras el usuario y el password usados.

Respecto a que tu servidor sea el que establezca una comunicación directa con el dispositivo iOS, la verdad es que no se me ocurre cómo hacerlo. He visto algún que otro tutorial para enviar notificaciones Push (incluso cuando la aplicación está cerrada), pero una cosa son notificaciones, y otra muy distinta enviar parámetros.

Yo lo que haría, en caso de que no lo tengas ya, es crearme un datasnap como servidor intermedio. En dicho datasnap implementaría una función de login a la que se le pasasen como parámetros (usuario, password e IP). Dicha función, que se ejecutaría en el servidor, pero a petición del dispositivo iOS, una vez hecha la verificación, generaría los parámetros en cuestión y el dispositivo los leería.

La otra opción implicaría que hicieses un par de consultas a la base de datos para comprobar que los parámetros que deseas descargarte ya están disponibles en el servidor y descargarlos en caso de que existan (puedes descargar archivos usando campos blobs incluso desde dispositivos iOS)

El problema de los datasnaps es que necesitan un servidor windows...

Un saludo

jacobobo
28-07-2013, 22:46:56
gracias por tu respuesta, se me hace interesante lo del datasnap, habia visto algo pero te soy sincero no le habia prestado mucha atencion, voy a investigar mas sobre lo que me aconsejas.
la conexion la hago directamente del ipad a mi servidor mysql. si es peligroso como tu lo comentas, pero estoy por lo pronto probando la aplicacion. para ver como se comporta. lo hago atravez de componente mydac hago las consultas al servidor mysql. directamente.

por lo pronto estoy utilizando componentes indy udpcliente, y por ahi le estoy enviando comandos a mi servidor, pero no se como hacerle para enviar del servidor al cliente... ahorita solamente recibe pero me gustaria enviarle a ese dispositivo que me envio datos. tambien poderle enviar a el datos, y asi evitar que el cliente este haciendo consultas a la base de datos mysql.

Saludos.