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

时间:2014-10-03 22:31:12

标签: java delphi soap delphi-xe2 ws-addressing

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

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

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

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

1 个答案:

答案 0 :(得分:1)

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

在这种情况下,我首先尝试使用Java EE的任何最先进的SOAP实现来实现 Java 客户端原型作为"证明-concept&#34 ;.这个建议背后的原因是,它将为您提供一些Java实践(以及一般的Web服务)中的不同选项的实践经验,以实现异步处理。

将此概念证明移植到Delphi将是第二步。


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

然而,"异步SOAP"从SOAP 1.2开始,处理是处理长时间运行过程的常用方法。例如,在JBoss中支持它 - (Asynchronous web services with JBoss WS)。

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