GWT RPC 中同步和异步接口的作用是啥。谁能详细解释一下?

Posted

技术标签:

【中文标题】GWT RPC 中同步和异步接口的作用是啥。谁能详细解释一下?【英文标题】:what are the roles of synchronous and asyncronuos interfaces in a GWT RPC .can anyone explain it in detail?GWT RPC 中同步和异步接口的作用是什么。谁能详细解释一下? 【发布时间】:2013-11-12 04:23:20 【问题描述】:

GWT RPC 中同步和异步接口的作用是什么,谁能详细解释一下?

提前致谢。

【问题讨论】:

【参考方案1】:

[The] 同步接口是服务规范的最终版本。该服务在服务器端的任何实现都必须扩展RemoteServiceServlet 并实现该服务接口。

[…]

无法直接从客户端调用此版本的 RPC。您必须为所有服务创建一个异步接口 […]

[…]

在您真正尝试从客户端进行远程调用之前,您必须创建另一个客户端接口,一个异步的,基于您原来的服务接口。

[…]

异步方法调用的本质要求调用者传入一个回调对象,该对象可以在异步调用完成时得到通知,因为根据定义,调用者在调用完成之前不能被阻塞。出于同样的原因,异步方法没有返回类型。他们通常返回无效。如果您希望更好地控制待处理请求的状态,请改为返回 Request。进行异步调用后,所有返回给调用者的通信都是通过传入的回调对象进行的。

来源: http://www.gwtproject.org/doc/latest/DevGuideServerCommunication.html#DevGuideCreatingServices

【讨论】:

谢谢...我还有一个问题。当我们进行 RPC 调用 MyServiceAsyncObject.myMethod(params,callback_object) 为什么服务器不会因为看到额外的参数(即回调对象)而感到困惑,因为它应该期望 myMethod(params) 根据其对接口 MyService 的实现? 因为在客户端和服务器之间有一个很大的生成“机器”和网络? GWT 编译器验证 2 个接口是否匹配并生成客户端代码,该代码将与服务器理解的协议进行对话(服务器本身使用接口的反射和作为参数传递的对象);该协议与您的对象紧密绑定,更改字段的顺序可能会中断通信,迫使您重新编译您的应用程序(重新生成客户端代码以匹配服务器端使用的代码)

以上是关于GWT RPC 中同步和异步接口的作用是啥。谁能详细解释一下?的主要内容,如果未能解决你的问题,请参考以下文章

GWT:更换与异步的RPC阻塞调用

使用 RPC 服务创建 GWT.create 的目的是啥?

GWT RPC - 并行异步调用

如何集成 GWT-RPC、Android 和 GAE?

GWT 的各种异步设施

拦截 GWT RPC 的异步代理服务异常