哪些选项可用于使用 SOAP 在 Delphi 中实现长轮询?
Posted
技术标签:
【中文标题】哪些选项可用于使用 SOAP 在 Delphi 中实现长轮询?【英文标题】:What options are available to implement long polling in Delphi with SOAP? 【发布时间】:2014-11-29 00:37:39 【问题描述】:我有一个 Delphi 企业应用程序,它充当 Java 后端(SOAP、Axis2)的客户端。我的一些请求需要不确定或特别长的时间才能完成,我想为 SOAP 请求实现一个长轮询解决方案。
据我所知,我通常会为此使用 WS-Addressing。然而,Delphi SOAP 客户端 (WCF) 似乎没有实现 WS-Addressing。
我沉迷于 Java 和 Delphi。我使用 Axis 2 组件,例如生命周期,但我可以转换到另一个 Web 服务引擎。我控制服务器端和客户端。
在 Delphi 和 Java 中实现长轮询有哪些选择?
【问题讨论】:
RemObjects 可能有一些现成可用的东西。 简要查看 RemObjects 的功能列表表明它是 WS-I Compliant 的,但它没有提到对 WS-Addressing 的支持,或者我知道的任何形式的长轮询。 【参考方案1】:你说 Java 已经用在服务器端,而你在那里被锁定在 Java 中(如果我理解正确的话)。
在这种情况下,我会首先尝试使用任何最先进的 Java EE SOAP 实现来实现 Java 客户端原型作为“概念验证” .此建议背后的原因是,它可以让您亲身体验 Java 端(以及一般的 Web 服务)实现异步处理的不同选项。
将这个概念证明移植到 Delphi 将是第二步。
另外,在做了一些研究之后,我看不到任何对使用 SOAP(通过 WS-Adressing 或其他方式)进行长轮询的特定支持的参考。
但是,“异步 SOAP”处理是自 SOAP 1.2 以来处理长时间运行的过程的常用方法。例如在 JBoss - (Asynchronous web services with JBoss WS) 中支持它。
也许您还可以考虑使用消息代理的不同架构。这称为基于 JMS 的 SOAP。 Delphi 有免费和商业客户端,它们允许从 JMS 系统接收 SOAP 响应。
【讨论】:
以上是关于哪些选项可用于使用 SOAP 在 Delphi 中实现长轮询?的主要内容,如果未能解决你的问题,请参考以下文章
哪些选项可用于使用 Adobe AIR 在 Android 上处理文本输入?