问题标签 [nghttp2]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 支持 HTTP/2.0 的 C++ Build Libcurl(现有版本)
我有一个现有的 LibCurl 构建,目前不支持协议 HTTP/2.0,因为我从未将它与nghttp2软件(这是必需的)链接。
是否仍然可以调整构建并将此软件添加到构建中?如果是这样,我该怎么做。如果没有,谁能给我一个 LibCurl 构建支持的构建细节:
- 静态构建
- HTTPS 支持(OpenSSL,我安装了这个库)
- HTTP/2.0 协议支持(nghttp2-software)
谢谢!
PS我使用Visual Studio 2017
c - mac os 升级 openssl
我的 Mac OS 系统是:OS X Yosemite 版本 10.10.5。它的openssl版本是0.9.8zg。现在我想安装一个nghttp2工具,它需要openssl>=1.0.1。所以我尝试 brew update 和 brew install openssl。之后我使用命令:openssl version
,它显示:OpenSSL 1.0.2l 25 May 2017
。
但是当我转到 nghttp2 目录并运行./configure
命令时,它仍然显示:
configure: Requested 'openssl >= 1.0.1' but version of OpenSSL is 0.9.8zg
.
我很困惑,为什么最新版本没有使用,但仍然使用旧版本?
c - 如何从 AVS 接收超过 65535 字节的 http2 连接数据?
我已经用 C 语言实现了一个应用程序,它使用 nghttp2 和 openssl 与 Amazon AVS 云进行通信。我最多只能得到 65535 个字节的响应。如果响应大于 65535 字节,则应用程序无法接收其余数据并永远卡住以接收响应。如前所述,我使用 nghttp2 库进行 HTTP/2 连接。
是否需要设置任何配置才能从 AVS 云获取超过 65535 字节的数据?请帮忙。
c++ - 在 Ubuntu 上为 Windows 交叉编译 nghttp2
我正在寻找如何在 Ubuntu for Windows 机器上交叉编译 nghttp2 库的步骤。在互联网上,我找不到关于这个主题的任何好的文档。
谁能帮帮我?
我已经尝试过诸如 using cross-compile-prefix
which 不幸的是 nghttp2 不知道的步骤
我需要为 Win32 和 Win64 目标机器构建 nghttp2 以便稍后在 Curl 构建中使用(我找到了这样做的文档,但是 nghttp2 仍然丢失......)
c++ - g ++ libcurl静态构建在nghttp2库上失败
我有一个将 LibCurl 库与我想静态链接的 nghttp2-library 结合使用的应用程序。
我用来构建的构建命令:
它产生的构建错误:
我使用以下命令构建了 nghttp2:
那么,查看静态链接 LibCurl 与 nghttp2 库的构建命令有什么问题?
nghttp2 - 我的 nghttp2.conf 后端模式有什么问题?
这是我的nghttpx.conf
文件:
当我做:
抛出此错误:
我的 nghttpx 配置有什么问题?
curl - 如何让buildroot的curl命令支持nghttp2?
我即将让我的 curl 命令支持 http2 协议。据我所知,nghttp2是http2的一个包。但是有很多解决方案只是在 Ubuntu、CentOS、MacOS 上。但是来自网络的资源并没有在buildroot上提及太多。
那么,有人可以告诉我如何让 buildroot 中的 curl 支持 nghttp2 吗?非常感谢。
rest - 当请求属于同一客户端会话时,nghttp2 按顺序处理请求
场景:我正在运行一个带有两个 API 和 4 个线程的休息服务器(nghttp2)。
- /something : 需要一些时间来处理
- /anything : 不花时间处理
现在,在客户端,我正在创建一个会话(本质上是一个 TCP 连接)并发出两个异步请求,首先是 /something,然后是 /anything。我注意到的行为是服务器在第一个请求完成之前不会处理第二个请求。在数据包捕获中,我可以看到 HTTP2 多路复用的良好实现。但这不是线头阻塞吗?还是我期望即使请求来自同一个 TCP 连接,也应该并行处理而不是以交错方式处理请求是错误的?
注意:如果我为每个请求创建两个不同的会话或 TCP 连接,那么它们将被并行处理。
rest - nghttp2 服务器在不同线程上处理来自客户端的多个请求
我nghttp2
用来实现一个 RESTful API 服务器。我已经定义了两个 GET API:
/api/ping
和/api/wait
. 虽然对前者的响应是立即发送的,但服务器在响应后者之前会进行一些处理。我为服务器分配了 4 个线程。
从客户端(也使用 实现nghttp2
),我与服务器建立连接并一个接一个地进行 API 调用,/api/wait
首先是/api/ping
. 我使用 Wireshark 观察到两个 GET 请求是通过两个不同的 TCP 数据包发送的。但是,在服务器完成对 的处理之前/api/wait
,它不会处理/api/ping
,尽管它还有其他可用的线程。
我从客户端建立了两个 TCP 连接,并在不同的连接上进行了两个 API 调用,服务器并行处理这些连接。
这是否意味着在一个线程上专门nghttp2
处理一个 TCP 连接,而来自一个 TCP 连接的请求是按设计顺序处理的?是否有任何设置来规避这种情况?这对于 Web 应用程序(按顺序处理请求)可能是一个很好的功能,但对于 API 彼此独立的 API 服务器来说不是。nghttp2
ssl - nghttp2 api.binance.com ssl 错误
我想使用 http/2 为 binance.com 的 api 编写一个客户端。为此,我正在尝试库 nghttp2,我在他们的示例代码中对 api 进行了测试调用:
[...]
[...]
然而,它总是在错误处理程序中告诉我
sslv3 警报握手失败
我不知道如何调试这个。我什至可以做些什么来理解为什么这不起作用?我试图将 tls 上下文创建的打开更改为其他内容,例如 tlsv12,但没有任何效果。如果它真的在尝试使用 sslv3,那么它不起作用也就不足为奇了,因为 api.binance.com 的 ssl 测试报告不支持 sslv3。对 nghttp2.org 本身进行测试我没有收到此错误。SSL 协商的某些地方出了问题。但我怎么能看到在哪里?