Comunidad de diseño web y desarrollo en internet online

flash remoting python

Citar            
MensajeEscrito el 08 Jun 2005 09:07 am
tengo un flash que tiene que conectarse con un servidor en python, por algun motivo me da error, lo he probado con uno en php con el mismo flash(unicamente cambiando la ruta del gateway) y si que funciona, por lo que supongo que es problema del python.

El codigo de python es:

------archivo gateway.py--------------

Código :

#!c:/python/python

print 'Content-type: text/html'
print

from AMF import AMF
import sys

gateway = AMF.AMF()

gateway.setRelativeBaseClassPath("./services")

gateway.service()

-------------------------------

-------arhivo hola.py------

Código :

#!c:/python/python

import sys

class hola:
    def methodTable(self):
        table = {}
        table["enviar"]= {
                    "description" : "retorna algo",
                    "access" : "remote", 
                    "returns" : "string"
            }
        return table
    
    def enviar(arg):
        data="Me has enviado: "+arg
        return data

---------------------------------

------codigo flash------------

Código :

import mx.remoting.NetServices;
import mx.remoting.Connection;
mx.remoting.debug.NetDebug.initialize();
capturaRespuesta = new Object();
capturaRespuesta.enviar_Result = function(data){
   texto_txt.text=("Dato recibido del servidor: "+data);
};
capturaRespuesta.onStatus = function(data){
   texto_txt.text=("Ocurrio un error.");
   texto_txt.text=("Detalles del error: "+data.description);
};
NetServices.setDefaultGatewayUrl("http://192.168.1.36/pruebas_flash/python/ ejemplos_python/holaMundo/gateway.py");
conn = NetServices.createGatewayConnection();
serv = conn.getService("holaquetal", capturaRespuesta);
serv.enviar("Probando");

---------------------------------

el archivo flash tiene un texto dinamico con la instancia texto_txt

por cierto utilizo flash mx professional 2004 con flash remoting as 2.0

Por robnix

8 de clabLevel



 

msie
Citar            
MensajeEscrito el 08 Jun 2005 09:20 am
No he trabajado mucho con el AMF de Python ... pero el gateway no puedes enviarle un content-type de tipo "text-html", el Content-type debe ser

Content-type: application/x-amf

Por Freddie

BOFH

53 tutoriales
597 articulos
43 ejemplos

Genero:Masculino   Admin

Conserje de Cristalab

clabbofh
Citar            
MensajeEscrito el 08 Jun 2005 10:00 am
no, cambiando el content-type como me dices sigue sin funcionar.....

alguien sabe de alguna pagina donde haya ejemplos de amf de python??

El codigo en php que si que funciona es:

archivo gateway.php

Código :

<?php
   include("c:/AppServ/php/flashservices/app/Gateway.php");
   $gateway = new Gateway();
   $gateway->setBaseClassPath(realpath("services/") . "/");
   $gateway->service();
?>


archivo hola.php

Código :

<?php
class hola{
   
   function hola(){
      $this->methodTable = array(
         "enviar" => array(
            "description" => "Regresa algo",
            "access" => "remote",
            "arguments" => "dato")
         );
   }

   function enviar($data){
      return "Me has enviado: ".$data;
   }
}
?>


Lo unico que cambio en el archivo flash es la ruta del gateway hacia el gateway.php.
A mi en principio me parece que serian codigos equivalentes el php y el python, pero..... algo ay mal en el script de python....

Por robnix

8 de clabLevel



 

msie
Citar            
MensajeEscrito el 08 Jun 2005 10:05 am
¿Que opinas si nos dices el error que te da?
xD

Por Freddie

BOFH

53 tutoriales
597 articulos
43 ejemplos

Genero:Masculino   Admin

Conserje de Cristalab

clabbofh
Citar            
MensajeEscrito el 08 Jun 2005 10:26 am
no es que me de error, lo que pasa es que no me aparece nada.
No recibe ningun valor enviar, ya que no entra en capturaRespuesta.enviar_Result

El caso es que si tengo un return en el codigo en hola.py en la funcion enviar.....

Por robnix

8 de clabLevel



 

msie
Citar            
MensajeEscrito el 08 Jun 2005 10:33 am
Varias cosas
1) No le pones ningun tipo de datos, es mas NI SIQUIERA DECLARAS las variables
2) La variable "conn" es de tipo "NetserviceProxy"; una clase que NO veo importada
3) De nuevo NO DECLARAS las variables.

Pero puede que eso no tenga nada que ver; asi que abre esta URL con algun navegador
http://192.168.1.36/pruebas_flash/python/ejemplos_python/holaMundo/gateway.py

Y dime que ocurre

Por Freddie

BOFH

53 tutoriales
597 articulos
43 ejemplos

Genero:Masculino   Admin

Conserje de Cristalab

clabbofh
Citar            
MensajeEscrito el 08 Jun 2005 10:44 am
lo que me aparece es un dialogo de guardar como, y al bajarlo me aparece el archivo gateway.py pero vacio.
Esto me pasa exactamente lo mismo que con el php.

Lo que me dices de los problemas del codigo actionscript.... en teoria funciona, ya que me funciona con el php

La variable conn es de tipo Netservices, esta importada en la primera linea:
"import mx.remoting.NetServices;"

Por robnix

8 de clabLevel



 

msie
Citar            
MensajeEscrito el 08 Jun 2005 10:49 am
En ese caso ... el gateway esta funcionando bien; el problema es el codigo de la clase ... y hay si, pues en Python no he trabajado mucho :P

Por Freddie

BOFH

53 tutoriales
597 articulos
43 ejemplos

Genero:Masculino   Admin

Conserje de Cristalab

clabbofh
Citar            
MensajeEscrito el 08 Jun 2005 10:54 am
bueno, muchas gracias.
sabes de alguna pagina que hablen de ello?
porque la pagina de donde baje el amf de python es:
http://www.simonf.com/flap/
pero habla practicamente de perl.

y no encuentro ninguna mas....

o alguien que sepa donde hay ejemplos o que tenga alguno....

Por robnix

8 de clabLevel



 

msie
Citar            
MensajeEscrito el 08 Jun 2005 06:01 pm
Activaste el NetDebugger? Tiene que mandarte a fuerzas un error si logras hacer bien el enlace con el gateway. O al menos deberia notificarte como va la conexion.

Por tangamampilia

.GAIA Developer

961 de clabLevel


6 articulos

Genero:Masculino   Anime Bloggers

México, D.F.

safari

 

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