【问题标题】:GWT Server Push using Jetty Continuations?使用 Jetty Continuations 的 GWT 服务器推送?
【发布时间】:2011-06-15 03:22:22
【问题描述】:

我应该实现一个 Web 应用程序,用户登录并通过该应用程序注册某种事件(在本例中为警报)。当警报发生时,服务器需要将警报推送到所有客户端。

目前我正在使用

  • 客户端的 GWT
  • 服务器端的码头

使用 Jetty Continuations 实现服务器推送是个好主意吗?我的要求是:

  • 客户数量将非常少 (
  • 警报不能丢失(即,如果客户端将关闭,它不能错过任何警报)
  • 如果客户端出现故障,则需要通知其他客户端(或者至少管理员应该收到某种通知,例如通过邮件)。

【问题讨论】:

    标签: gwt jetty continuations


    【解决方案1】:

    使用 Comet(例如 Jetty Continuations)的主要原因是,它可以减少轮询频率。换句话说:您可以在没有 Comet 的情况下通过客户端的频繁轮询来实现相同的目标。选择哪种替代方案取决于您的应用程序的特性 - 取决于此,每个替代方案可能比另一个更有效或更低!

    在您的情况下,由于您在客户端出现故障时需要通知,因此使用频繁轮询是有意义的。 Comet(长轮询)不太适合此任务:由于其原理,客户端发送新请求可能需要很长时间。接收新请求是服务器知道客户端仍然存在的唯一方法(请记住,Web 服务器——无论是否有 Comet——永远无法向客户端发送请求)。

    【讨论】:

      【解决方案2】:

      您的要求表明警报不能丢失,这意味着比长轮询或频繁轮询更复杂的解决方案。

      您的客户端应该向服务器发送确认消息,因为您的用户可以在警报消息到达后立即关闭应用程序,他/她可能会丢失该警报。 此外,您的用户应单击警报消息以确认服务器。你可以设置一个时间限制来确认,如果客户端没有发送确认消息,那么你可以假设警报已经丢失..

      带有确认算法的长轮询将是我解决您问题的选择..

      【讨论】:

        猜你喜欢
        • 2015-06-03
        • 2016-05-11
        • 2011-05-16
        • 2014-08-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-07-12
        • 1970-01-01
        相关资源
        最近更新 更多