有哪些选项可用于在Delphi中使用SOAP实现长轮询?

ste*_*ber 6 java delphi soap ws-addressing delphi-xe2

我有一个Delphi企业应用程序,它充当Java后端(SOAP,Axis2)的客户端.我的一些请求需要不确定或特别大的时间才能完成,我想为SOAP请求实现一个长轮询解决方案.

据我所知,我通常会使用WS-Addressing.但是,似乎Delphi SOAP客户端(WCF)没有实现WS-Addressing.

我被锁定在Java和Delphi中.我使用Axis 2组件,例如生命周期,但我可以转换到另一个Web服务引擎.我控制服务器和客户端.

在Delphi和Java中实现长轮询有哪些选择?

mjn*_*mjn 1

你说Java已经在服务器端使用,并且你在那里被锁定到Java(如果我理解正确的话)。

在这种情况下,我首先尝试使用 Java EE 的任何最先进的 SOAP 实现来实现Java客户端原型作为“概念验证”。此建议背后的原因是,它将为您提供一些有关 Java 端(以及一般 Web 服务中)的不同选项来实现异步处理的实践经验。

将这个概念验证移植到 Delphi 将是第二步。


另外,在做了一些研究之后,我看不到任何对 SOAP 长轮询的特定支持的引用(通过 WS-Adressing 或其他方式)。

然而,自 SOAP 1.2 以来,“异步 SOAP”处理是处理长时间运行的过程的常用方法。例如,JBoss 就支持它 - (使用 JBoss WS 的异步 Web 服务)。

也许您还可以考虑使用消息代理的不同架构。这称为基于 JMS 的 SOAP。Delphi 有免费和商业客户端,允许从 JMS 系统接收 SOAP 响应。