gpt4 book ai didi

java - GWT RPC 机制的序列图

转载 作者:行者123 更新时间:2023-12-02 05:14:34 27 4
gpt4 key购买 nike

我不完全理解 GWT RPC 机制,因此我正在寻找序列图。有谁有链接吗?

GWT 主页上的管道图并未详细描述该机制:http://www.gwtproject.org/doc/latest/DevGuideServerCommunication.html#DevGuideRemoteProcedureCalls

最佳答案

据我所知,没有公开的序列图。但它实际上并没有多大帮助,因为它必须同时处理许多抽象级别:

  • Javascript 端并不真正“调用”Java 端(它发送请求,这是另一回事)
  • 主要客户端参与者(异步接口(interface)的实现)永远不可见,因为它是在项目编译期间生成的。

需要理解的要点是:

  • 服务器端是同步的 - 纯 Servlet API,单个线程服务每个请求;
  • Javascript 端是异步的。当你用Javascript发送HTTP请求时,你无法等待响应,你只能提供回调。这就是为什么您无法在同步接口(interface)中包装返回值的 HTTP 调用。
  • 在完美的世界中,只有一个接口(interface),桥接客户端和服务器端。服务器将实现该接口(interface),客户端将以某种方式获取其代理并调用其方法。这就是同步远程处理通常的工作方式。由于上述原因,这是不可能的。
  • 因此我们需要两种不同的接口(interface):一种用于客户端(异步),一种用于服务器(同步)。它们只是按照惯例放在一起,因为Java的类型系统无法表达它们之间的关系(方法名称相同,参数相关,但不相同,返回类型不同)。,
  • 在 GWT 项目编译期间,会生成一个实现客户端接口(interface)的类。它的实例可以调用服务器(以异步方式)。然后,服务器找到同步接口(interface)的相关方法的实现并调用它,发送回响应(同步)。该响应会触发 JavaScript 端的回调(异步)。

所以你已经得到它了。整个异步性源于 XMLHttpRequest 对象的工作方式。

请注意,官方 wiki 上的图表具有误导性 - Javascript 调用异步接口(interface),而不是同步接口(interface)(如图所示)。

关于java - GWT RPC 机制的序列图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27068128/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com