Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Flash y cual es la mejor forma de acceder a una BD

Iniciado por Capiflash, 23 de Septiembre de 2008, 10:54:44 AM

« anterior - próximo »

Capiflash

Estoy pensando/diseñando/estructurando un juego en flash , pero necesito mucha información de una base de datos. La información es bastante grande y muy diversa como para cargarla toda de un plumazo , asi que tendre que mantener una comunicación constante entre el juego y la base de datos.
Se que por aqui hay gurus del actionscript y demas , a ver si podeis echarme una mano.
Se me han ocurrido varias posibilidades pero no se realmente los pros y contras de cada una :
1- Un web service
2- A traves de URLoader
3- Una conexion a traves de un socket XML

No tengo argumentos para descartar una u otra opción... a ver si alguien me ayuda a hacerlo

Saludos!

TiRSO

La opción del socket XML yo la descartaría, salvo que necesites una comunicación en tiempo real. Lo digo porque necesitarás un servicio de hosting que te permita hacerlo (con los típicos servidores compartidos no se puede), porque es más complicado y porque el tema de la seguridad con sockets y flash es un infierno que yo intentaría evitar xD.

Con lo de "web service" no sé exactamente a qué te refieres, así que ahí no estoy seguro de qué decirte.

El uso de URLLoader es el más básico, pero puede que funcione. Esta la vas a tener funcionando enseguida de forma bastante sencilla, pero si los datos que quieres transmitir son complicados quizás acabe siendo contraproducente. En el "helper" de la api de ululand (una clase en actionscript que te lo da todo hecho) usamos este método para realizar las llamadas al servidor.


Por otro lado, te comento otra opción que quizás te interese: Hay una serie de librerías que se instalan en el servidor y que permiten la comunicación entre el cliente en flash y el servidor de datos binarios serializados. Esto te permitiría comunicar el juego directamente con las clases en el servidor.
En ululand usamos inicialmente esta opción (AMFPHP concretamente) y no nos fué nada mal. Sin embargo, al final lo hemos cambiado por una solución creada por nosotros; más que nada por aprovechar algunas funciones de symfony que nos vinieron muy bien.

Capiflash

#2
Estaba deseando que aparecieras TiRSO , que controlas un huev** de esto :P
La información que necesito no tiene que ser en tiempo real , no voy a redibujar secciones de la pantalla en base a la información del último segundo, ni nada por el estilo. Mas bien es un juego "tipico" de browser ( ogame , travian ) , donde lo único que gestionas es una base de datos.
Lo que has mencionado AMFPHP tienen muy muy muy buena pinta. El URLoader no me daba buena espina....si soy sincero su rendimiento en un juego de ese tipo me da miedo , ya que constantemente desde que quieres ahcer algo has de consultar la base de datos , asi que quizas AMFPHP es mejor opción para ello.
Lo de los sockets seguí buscando información , y menudo follon se traen con las políticas de seguridad como tu dices , eso es un infierno , a parte , la documentación de adobe me pareció algo escasa , y los ejemplos que mire antes pues hacían todos lo mismo , se conectaban y poco mas.
Ahora que he desvelado mi gran proyecto para dominar el mundo xDD , quizás puedas aconsejarme si AMFPHP es una opción viable ( u otra que se te ocurra ) o si me dedico a la jardinería de interiores :P

Saludos y gracias!

Edito : Para más información , sería en un servidor dedicado .

josepzin

Recuerdo haber probado AMFPHP  hace un par de años y me pareció la mejor solución a la hora de acceder a muchos datos, aunque tenía su punto de complicación ya que no era tan facil como "geturl"

Capiflash

He instalado AMFPHP para ver como era ,y estoy mirando sus ejemplos... parece sencillo y potente , a ver cuanto tardo en estamparme con algun problema xD

ethernet

No se te ocurra usar sockets, porque aunque el proveedor de que tu hosting te deje poner el servicio para servir licencias los firewalls te van a amargar la vida profundamente ya que por defecto necesita tener abierto el 843 (o uno a tu elección), pero la petición es http y los proxies no se la comen.

Tampoco se te ocurra usar servicios basados en REST, NI SE TE OCURRA, el api de flex para hacer peticiones HTTP es lo más fulero que he visto nunca. Tienes la opción de usar para ello los típicos http request de javascript, pero es un infierno doble.

En resumen, uses lo que uses, limitate a get y post.

Capiflash

A que te refieres con servicios basados en REST ethernet?

carlos

REST es una técnica para implementar servicios web:
http://es.wikipedia.org/wiki/Representational_State_Transfer

Aunque si desde flex puedes hacer GET y POST en teoría no debería haber ningún problema, no? Yo estoy usando REST desde javascript, con la librería Prototype, y también se limita a gets y posts, los puts y deletes los simula con un parámetro adicional.

Capiflash


ethernet

Cita de: carlos en 25 de Septiembre de 2008, 11:42:42 AM
REST es una técnica para implementar servicios web:
http://es.wikipedia.org/wiki/Representational_State_Transfer

Aunque si desde flex puedes hacer GET y POST en teoría no debería haber ningún problema, no? Yo estoy usando REST desde javascript, con la librería Prototype, y también se limita a gets y posts, los puts y deletes los simula con un parámetro adicional.

flex permite GET y POST, con air permite PUT y DELETE además, sin embargo el problema no reside ahí, ya que como dices se puede emular su comportamiento con un _method en las cabeceras. El gran problema es el acceso a cabeceras cuando llega del servicio REST... Con javasxcript y cualquier librería de estas de utilidades es posible, pero es un coñazo tener que andar con varios lenguajes, manteniendo varias partes, bugs de IE aparte... :)






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.