有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java web服务和web应用程序之间双向通信的可能方式有哪些

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

问候,, 安舒尔


共 (1) 个答案

  1. # 1 楼答案

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

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

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

    无论客户端实现如何,使用Comet都可能导致服务器端打开的连接过多。在决定web服务器堆栈/web框架时,您应该考虑到这一点——理想情况下,它应该使用非阻塞I/O和continuations将长连接与服务器线程解耦

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