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 中同步和异步接口的作用是啥。谁能详细解释一下?的主要内容,如果未能解决你的问题,请参考以下文章