【发布时间】:2016-07-26 20:22:24
【问题描述】:
我的问题很简单。我希望看到我当前的客户端/服务器系统在 HTTP/2 上运行。
因此我需要知道客户端是否能够将消息推送到服务器。这与 KeepAlive 结合起来对我的应用程序来说是一个很大的好处。
问候!
【问题讨论】:
-
如果我正确理解您的需求,那么一切都应该自动运行。例如,标准的HTML页面可以有多个
<script>、<link>、<img>等元素。让我们将元素指向支持 HTTP/2 的同一 Web 服务器。 Web 浏览器将打开连接并向服务器发送 GET 请求。多个 GET 请求之间会有很小的超时,但是第二个和以后的所有请求都不会等待上一个 GET 请求的响应,并且通信的时间线将与合并数据的一个请求几乎相同. -
感谢您的回答。应用程序不得用于为 Web 浏览器提供 HTML 数据。我想让服务器客户端连接在 HTTP/2 Protocoll 上运行以通信和共享数据。希望这对你有意义
-
不客气!您在哪个操作系统上使用哪个 Web 服务器?通常,您需要使用最新版本的 Web 服务器和 OpenSSL 等依赖组件。您需要非常仔细地配置 TLS,然后所有相对现代的 Web 浏览器将自动使用 HTTP/2。它是 HTTP/2 的复用特性。从客户端到服务器的相同请求将更快地发送。我完全同意 rkosegi:您使用了错误的术语“客户端可以将消息推送到服务器”,因为“推送”将用于仅用于从服务器发送数据,客户端未明确请求 .
-
好吧,我错了。我想使用基于 Java 的 HTTP/2 服务器。架构应如下所示。 1)服务器运行并等待。 2) 客户端连接(HTTP/2 管道现在应该打开) 3) 客户端发送登录凭据 4) 正确登录后,服务器接受来自客户端的每个传入流。该计划是通过管道从客户端发送消息到服务器。服务器应该能够处理这些消息。
-
@MrNoSql :对我来说,这听起来像是您将 http/2 滥用于某些并非严格设计的东西。看看 websocket、JMS(各种传输)或 MQTT。我认为它们更适合您刚刚描述的语义。