Frage

Ich bin mit web2py (v1.63) und Flex 3. web2py v1.61 eingeführt, um die @Service Dekorateure, die es Ihnen ermöglichen, eine Controller-Funktion mit @ service.amfrpc zu markieren. Sie können dann diese Funktion aufrufen remote http://..../app/default/call/amfrpc/[function] verwenden. Siehe http://www.web2py.com/examples/default/tools#services. Hat jemand ein Beispiel, wie Sie eine Flex 3 einrichten würden eine Funktion wie diese nennen? Hier ist, was ich versucht habe, so weit:

<mx:RemoteObject id="myRemote" destination="amfrpc" source="amfrpc"
    endpoint="http://{mysite}/{myapp}/default/call/amfrpc/">
    <mx:method name="getContacts"
        result="show_results(event)"
        fault="on_fault(event)" />
</mx:RemoteObject>

In meinem Szenario, was soll der Wert des Ziel- und Quell Attributs sein? Ich habe ein paar Artikel auf nicht-web2py Implementierungen wie http://corlan.org/2008/10/10/flex-and-php-remoting-with-amfphp/ , aber sie verwenden, um eine ... / gateway.php Datei, anstelle von eine URI, die direkt auf die Funktion abbildet.

Alternativ konnte ich flash.net.NetConnection nutzen erfolgreich meine Remote-Funktion aufzurufen, aber die meisten der Dokumentation ich gefunden habe, hält dies für die alte, Pre-Flex 3 Art und Weise zu tun, AMF zu sein. Siehe http://pyamf.org/wiki/HelloWorld/Flex . Hier ist der NetConnection Code:

gateway = new NetConnection();
gateway.connect("http://{mysite}/{myapp}/default/call/amfrpc/");
resp = new Responder(show_results, on_fault);
gateway.call("getContacts", resp);

-ROB

War es hilfreich?

Lösung

Ich habe nicht einen Weg zu verwenden, um eine RemoteObject- mit dem @ service.amfrpc Dekorateur gefunden. Allerdings kann ich den älteren Actionscript-Code mit einem NetConnection (ähnlich das, was ich geschrieben ursprünglich) verwenden und Paar, das mit einer @ service.amfrpc Funktion auf der web2py Seite. Dies scheint gut zu funktionieren. Das einzige, was Sie wollen, würde in der NetConnection-Code ändern, die ich ursprünglich geteilt, ist das Hinzufügen eines Ereignis-Listener für den Verbindungsstatus. Sie können mehr Zuhörer hinzufügen, wenn Sie das Bedürfnis verspüren, aber ich fand, dass NetStatusEvent war ein Muss. Dieser Status wird gefeuert werden, wenn der Server nicht reagiert. Sie Verbindung einrichten würde wie folgt aussehen:

gateway = new NetConnection();
gateway.addEventListener(NetStatusEvent.NET_STATUS, gateway_status);
gateway.connect("http://127.0.0.1:8000/robs_amf/default/call/amfrpc/");
resp = new Responder(show_results, on_fault);
gateway.call("getContacts", resp);

-ROB

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top