如何在AVS的http2连接上接收超过65535字节的数据?

问题描述 投票:0回答:2

我用C语言实现了一个应用程序,它使用nghttp2和openssl与Amazon AVS云进行通信。我只能获得高达65535字节的响应。如果响应大于65535字节,则应用程序无法接收其余数据并永久停留以接收响应。如前所述,我使用nghttp2库进行HTTP / 2连接。

是否有任何配置需要设置为从AVS云获取超过65535字节的数据大小?请帮忙。

c ssl http2 alexa-voice-service nghttp2
2个回答
0
投票

您只能接收65535字节的事实很像您没有正确处理HTTP / 2流量控制。

我不太了解nghttp2库,告诉你必须做些什么才能确保正确处理流量控制,但要么你没有正确使用nghttp2 API(例如,你忘了通知回调),或者你没有调用nghttp2 API来处理你必须调用的流量控制。

作为参考,您可以阅读有关流量控制in the specification


0
投票

我也遇到了同样的问题,作为一个快速的解决方法,我在打开会话时通过nghttp2_option_set_no_auto_window_update(option,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的自动窗口更新功能不起作用。

© www.soinside.com 2019 - 2024. All rights reserved.