我用C语言实现了一个应用程序,它使用nghttp2和openssl与Amazon AVS云进行通信。我只能获得高达65535字节的响应。如果响应大于65535字节,则应用程序无法接收其余数据并永久停留以接收响应。如前所述,我使用nghttp2库进行HTTP / 2连接。
是否需要设置任何配置以从AVS云获取超过65535字节的数据大小? 请帮忙。
答案 0 :(得分:0)
你只能收到65535个字节的气味很像你没有正确处理HTTP / 2流量控制。
我不太了解nghttp2
库,告诉您必须采取哪些措施来确保正确处理流控制,但要么您没有使用nghttp2
API正确(例如,您忘记通知回调),或者您没有调用处理您必须调用的流量控制的nghttp2
API。
作为参考,您可以阅读有关流量控制in the specification的信息。
答案 1 :(得分:0)
我也遇到了同样的问题,作为快速解决方法,我在打开会话时通过 nghttp2_option_set_no_auto_window_update(选项,1) API禁用了nghttp2的自动窗口更新并调用了
nghttp2_session_consume(session,stream_id,len); nghttp2_submit_window_update(session,NGHTTP2_FLAG_NONE,stream_id,len); nghttp2_session_send(会话);
我完成处理一个数据块后,从数据块recv回调。我仍然不确定为什么启用nghttp2的自动窗口更新功能不起作用。