【发布时间】:2012-07-24 00:00:17
【问题描述】:
我需要向基于 gwt 的服务器发送一条简单的消息。众所周知,消息的有效载荷中是我们要发送消息的服务的序列化策略文件的强哈希名称。 在服务器-客户端通信中,我可以在哪里获得此哈希? Web 浏览器做到了,我正在由提琴手分析萤火虫通信,但我没有看到来自服务器的任何带有此哈希的消息。那么,客户端的 Web 浏览器如何知道在消息的负载中向服务发送哪个强哈希名称?
【问题讨论】:
我需要向基于 gwt 的服务器发送一条简单的消息。众所周知,消息的有效载荷中是我们要发送消息的服务的序列化策略文件的强哈希名称。 在服务器-客户端通信中,我可以在哪里获得此哈希? Web 浏览器做到了,我正在由提琴手分析萤火虫通信,但我没有看到来自服务器的任何带有此哈希的消息。那么,客户端的 Web 浏览器如何知道在消息的负载中向服务发送哪个强哈希名称?
【问题讨论】:
它被硬编码在生成的 JS 中,以及客户端与 与服务器通信的方式是它使用的服务的版本。
使用 GWT-RPC,客户端和服务器必须同步(尽管从技术上讲,我认为您可以同时支持您的服务的多个版本——正如客户端所知道的那样),并且这就是他们检查它的方式:客户端说“我知道如何与你交谈”,服务器首先检查它是否可以(加载序列化策略),然后继续或立即失败并返回 IncompatibleRemoteServiceException。
所以它实际上从来没有由服务器发送(嗯,在 JS 代码中是的,但现在通过 RPC)。
【讨论】: