问题标签 [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.
post - 如何在 esp32 中使用 shlib(nghttp2) 发送一大块数据?
我想使用 HTTP2 连续发布数据。正如我发现的,唯一可行的解决方案是使用 shlib。我可以实现并使用它。但是我遇到了两个问题: 1- shlib 理论上不允许我们发送大于 16KB 的数据。在这里,我找到的解决方案是在不调用 NGHTTP2_DATA_FLAG_EOF 的情况下多次输入缓冲区。但是,主要问题是我们不能返回缓冲区的大小,虽然定义为 int,但不支持超过 16K 的长度。2- 发送超过 3 到 4K 的数据的故障率呈指数级增长,因为在这些情况下,只有少数数据包能够正确发送。
有什么建议吗?谢谢
我尽我所能确保资源不会相互干扰。这是我的代码:
nghttp2 - 如何使用 ngthttp2 发送帖子数据?
我正在使用 nghttp2 发送 http post 数据,但没有成功,有人可以帮助解决我的问题。
nghttp2的主要api是nghttp2_submit_request,关键代码如下:
静态无效_h2_client_submit_request(h2_client_session_data *session_data){
}
int send_len = 0; ssize_t data_prd_read_callback(nghttp2_session *session, int32_t stream_id, uint8_t *buf, size_t length, uint32_t *data_flags, nghttp2_data_source *source, void *user_data)
{
}
server - 我们如何响应客户端 h2c 升级请求,使用 nghttp2 库进行服务器实现
我们如何响应客户端 h2c 升级请求,使用 nghttp2 库进行服务器实现。如果 h2,ALPN 协商,但不确定我们如何在服务器端设置 h2c,响应 101-Switching-protocols..etc,并让 nghttp2 库处理服务器实现的进一步处理。任何帮助表示赞赏。
c++ - 如何使用 nghttp2 解决“空响应”错误?
我正在使用nghttp2_asio。我使用./configure --enable-asio-lib
. 然后,我添加/usr/local/lib
到/etc/ld.so.conf
文件中。代码如下:
当我尝试在 上打开浏览器(Chrome 或 Firefox)时http://localhost:8080
,出现以下错误:
此页面不工作
localhost没有发送任何数据。
ERR_EMPTY_RESPONSE
即使我尝试使用curl
,它也会给我错误:
curl:(52)来自服务器的空回复
唯一有效的是curl http://localhost:8080 --http2-prior-knowledge
.
有解决方案吗?
c++ - 链接 nghttp2 静态库
我想在 C++ 中使用nghtt2_asio编译一个简单的服务器应用程序。
它在共享库下完美编译:
g++ server.cpp -O2 -std=c++20 -Wall -Wextra -lnghttp2_asio -lboost_system -lssl -lcrypto -o server
但是当我静态编译它时:
g++ server.cpp -static -O2 -std=c++20 -Wall -Wextra -o server -lssl -ldl -pthread -lcrypto -ldl -pthread -lnghttp2_asio -lboost_system
链接器给了我这些错误:
有人可以解释一下会发生什么吗?
asynchronous - 具有 1 个并发流的 HTTP2 请求
只是为了确认。我有一个简单的 http2 服务器,它会在 1 秒后响应,因此对每个传入请求强制延迟 1 秒。
事实:将 h2load 与单个并发流 (-m 1) 一起使用,我有 1 个请求/秒。
因此,即使通过异步调度 1 秒延迟来释放 tatsuhiro nghttp2 io 服务,在动态请求得到响应之前不会发送新请求。
这是预期的行为吗?
c++ - NgHttp2 调用请求数据处理程序两次,针对一个请求
我正在使用nghttp2
. 我试图弄清楚为什么
调用on_data
中的处理程序server.cpp
两次。我知道它被调用了两次,因为当我发送一个包含数据的请求时,我得到了服务器中单个请求的以下日志输出。
但是如果我不在请求中发送数据。单个请求的日志输出是我所期望的
我使用客户端和这行代码将数据发送到服务器
auto req = sess.submit(ec, "GET", "http://127.0.0.1:3000/", "aaaaaaaaaa");
为了不发送数据,我只需删除第三个参数。
server.cpp
编译g++ server.cpp -o server.out -lnghttp2_asio -lboost_system -lcrypto -lpthread -lssl -lboost_thread
编译g++ client.cpp -o client.out -lnghttp2_asio -lboost_system -lcrypto -lpthread -lssl -lboost_thread
c++ - 如何使用 cmake 链接 nghttp2 asio 项目
我有一个项目,我想在其中使用nghttp2库。我正在尝试链接这个项目,CMakeLists.txt
以便我可以用cmake
.
我的项目结构
导入的主程序nghttp2
我的CMakeLists.txt
文件如下
当我运行make
后cmake .
出现以下错误
Main.cpp
我可以手动编译
编辑:
我首先nghttp2
在我的机器上安装它来编译它。然后将这一行添加到CMakeLists.txt
有没有更优雅的方法来做到这一点?
https - 如何为 https 流量配置本地修复端口
我在 ubuntu 上使用 nghttpx 作为代理,我已将 forntend 配置为 127.0.0.1:8443;no-tls 和后端到目标服务器 [url,port;proto=h2;tls;dns]。和 https 流量工作正常,但所有 https 流量都通过临时端口传输到目标服务器。目标服务器 https 流量通过临时端口,因此对于每个请求客户端端口都是不同的,我希望本地端口(修复端口)用于 nghttpx 上的 https 流量。是否有任何配置为后端 https 流量配置本地端口或绑定本地端口(修复端口)。