我使用web2py(v1。63)和Flex3.web2py v1。61介绍了该@服务的装饰,它们允许你来签一个控制器的功能与@服务。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>

在我的情况下,应该是什么值的目的地和源的属性?我已经阅读了几篇文章关于非web2py的实现,例如 http://corlan.org/2008/10/10/flex-and-php-remoting-with-amfphp/, 但他们使用.../gateway.php 文件而不是具有URI地图直接的功能。

或者,我们已经能够使用闪光灯。网。NetConnection成功叫我的远程功能,但最重要的文件,我们发现认为这是旧的,预Flex3的方式做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);

-Rob

有帮助吗?

解决方案

我还没有找到一种方法来使用以@ service.amfrpc装饰一个RemoteObject。不过,我可以用用的NetConnection(类似于我最初发布)旧ActionScript代码和一对与web2py的侧@ service.amfrpc功能。这似乎很好地工作。有一件事,你想在我原先共享的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);

-Rob

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top