Я использую web2py (v1.63) и Flex 3. В web2py v1.61 представлены декораторы @service, которые позволяют помечать функцию контроллера с помощью @ service.amfrpc. Затем вы можете вызвать эту функцию удаленно, используя http://..../app/default/call/amfrpc/[function]
. См. http://www.web2py.com/examples/default/tools#services. У кого-нибудь есть пример того, как бы вы настроили Flex 3 для вызова такой функции? Вот что я пробовал до сих пор:
<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>
В моем сценарии каким должно быть значение атрибутов назначения и источника? Я прочитал пару статей о реализациях, не относящихся к web2py, таких как http://corlan.org/2008/10/10/flex-and-php-remoting-with-amfphp/,, но они используют файл ... / gateway.php вместо URI, который отображается непосредственно на функцию.
Кроме того, я смог использовать flash.net.NetConnection для успешного вызова моей удаленной функции, но большая часть документации, которую я нашел, считает, что это старый, до Flex 3 способ выполнения AMF. См. http://pyamf.org/wiki/HelloWorld/Flex. Вот код NetConnection:
gateway = new NetConnection();
gateway.connect("http://{mysite}/{myapp}/default/call/amfrpc/");
resp = new Responder(show_results, on_fault);
gateway.call("getContacts", resp);
* 1016 Роб *