在web2py中使用mx:RemoteObject@服务.amfrpcd

2024-06-16 12:38:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用的是web2py(v1.63)和flex3。web2pyv1.61引入了@service decorators,它允许您用@服务.amfrpc. 然后可以使用http://..../app/default/call/amfrpc/[function]远程调用该函数。见http://www.web2py.com/examples/default/tools#services。有没有人举个例子来说明如何设置flex3来调用这样的函数?以下是我目前所做的尝试:

<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>

在我的场景中,destination和source属性的值应该是多少?我读过一些关于非web2py实现的文章,比如http://corlan.org/2008/10/10/flex-and-php-remoting-with-amfphp/,但是它们使用了一个/网关.php而不是具有直接映射到函数的URI。在

或者,我可以使用flash.net.NetConnection为了成功地调用我的远程函数,但是我发现的大多数文档都认为这是旧的、pre-flex3的AMF方法。见http://pyamf.org/wiki/HelloWorld/Flex。以下是网络连接代码:

^{pr2}$

-罗布


Tags: 函数eventhttpdefaultsource远程servicecall
1条回答
网友
1楼 · 发布于 2024-06-16 12:38:13

我还没有找到一种方法将远程对象与@服务.amfrpc装饰工。但是,我可以使用NetConnection(类似于我最初发布的内容)使用旧的ActionScript代码,并将其与@服务.amfrpcweb2py端的函数。这似乎很管用。在我最初共享的NetConnection代码中,您需要更改的一件事是为连接状态添加一个事件侦听器。如果需要,可以添加更多侦听器,但我发现NetStatusEvent是必须的。如果服务器没有响应,将触发此状态。您的连接设置如下所示:

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);

-罗布

相关问题 更多 >