【问题标题】:jetty http/2 keep push stream openjetty http/2 保持推流打开
【发布时间】:2016-08-21 10:56:20
【问题描述】:

对我所拥有的内容的简短说明。

  1. 我有一个服务器和一个客户端
  2. 客户端发出 GET 请求
  3. GET 请求的流被用作推送流
  4. 服务器通过此流在单个线程中将消息推送到客户端

问题是当我在 30 秒内没有发送数据时,客户端似乎会自动关闭流。

我已经将 Timout 从 30 秒设置为 LONG.MAX_VALUE:

stream.setIdleTimeout(Long.MAX_VALUE);

现在我已经实现了一个“心跳解决方法”,它每 20 秒推送一个简单的字符串,所以我避开了超时。

我只是想知道这是否是唯一的方法。或者,如果我必须更改一些我没有找到的设置。

感谢您的每一个回答。

问候!

【问题讨论】:

    标签: java jetty http2


    【解决方案1】:

    您似乎正在执行反向 HTTP 长轮询,这确实需要“心跳”以避免流或连接因空闲超时而关闭。

    通常最好进行常规 HTTP 长轮询(即客户端发送心跳),因为它允许服务器更快地检测断开连接的客户端。

    但是,如果您想执行服务器推送消息传递,最好使用CometD 之类的解决方案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-14
      • 1970-01-01
      • 2017-01-17
      • 1970-01-01
      • 2011-04-20
      • 2017-08-15
      • 2021-04-23
      • 1970-01-01
      相关资源
      最近更新 更多