【问题标题】:what are the possible ways of two-way communication between web-service and web applicationWeb服务和Web应用程序之间双向通信的可能方式是什么
【发布时间】:2013-09-13 11:02:15
【问题描述】:

我有一个需要相互通信的 Web 应用程序和一个 Web 服务。这种通信必须是双向通信,因为 Web 应用程序可以将在接口处发生的事件发送到 Web 服务。 Web服务可以将第三方收到的事件发送到Web应用程序部分。那么,我应该遵循什么设计呢?如何使这种通信成为双向通信?

问候, 安舒尔

【问题讨论】:

  • 看看 WebSockets。

标签: java web-services soap


【解决方案1】:

您可以通过使用 Comet 模型(有时称为反向 AJAX)来做到这一点。 它是通过长轮询或打开到 web 服务的持久连接来实现的。

在长轮询模式下,客户端打开与 Web 服务的连接并等待服务器的响应。当有事件从服务器发送到客户端时,服务器只需使用该预先存在的连接进行响应并关闭连接,然后客户端读取响应并立即打开一个新连接以侦听更多事件。

在流模式下,连接是持久的,不会在每次服务器事件后关闭。可以使用带有隐藏 iframe 的 HTTP/1.1 分块响应来完成此操作。

无论客户端实现如何,请注意使用 Comet 可能会导致服务器端打开的连接数量过多。在决定网络服务器堆栈/网络框架时,您应该考虑到这一点——理想情况下,它应该使用非阻塞 I/O 和延续来将长连接与服务器线程分离。

一些 web 框架已经内置了 Comet 支持:PlayLift

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-27
    • 1970-01-01
    • 1970-01-01
    • 2011-09-16
    • 1970-01-01
    • 1970-01-01
    • 2020-11-12
    • 2012-05-23
    相关资源
    最近更新 更多