This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CC3120MOD:在不等待响应的情况下发送 HTTP 请求

Guru**** 2392865 points
Other Parts Discussed in Thread: CC3120

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/905029/cc3120mod-sending-http-requests-without-waiting-for-a-response

器件型号:CC3120MOD
主题中讨论的其他器件:CC3120

如果我向 CC3120发送了许多 HTTP 请求、但没有等待响应、则行为是不可预测的。  有些响应正常、有些响应延迟几秒钟、有些响应超时。  如果我等待每个请求的响应、一切都正常且速度快得多。  您能否提供一些见解、了解为什么在 CC3120请求过载时会发生不可预测的行为?  如果这种情况意外发生、我希望能够防止我们的系统发生故障、因为我注意到资源负载在已生成的堆栈和堆上上升。

Gary

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    CC3120具有有限的资源(TCP 缓冲区)、您应根据可用资源优化工作。  

    您是否正在使用 HttpClient 库?  

    请提供有关您使用 API 的方式的信息。

    在提出请求后立即阅读响应肯定会简化资源管理。

    您是否更新了套接字 RCVBUF (使用 SL_SockSetOpt)?

    您是否正在向同一服务器(通过同一套接字和连接)发送多个请求?

    还是通过不同的套接字发送每个请求?

    BR、

    Kobi

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我们使用 HttpClient 库进行云通信、使用内部 HTTP 服务器进行移动应用通信。  它是使用 SimpleLinkNetAppRequestEventHandler 实现的移动应用程序 HTTP 服务器请求、如果移动应用程序在发送另一个请求之前未等待其发送的 HTTP 请求的响应、则该请求将无法预测。  在这种情况下、我们依赖于内部 HTTP 服务器、因此我们不会执行任何与套接字相关的操作。  与 HTTP 服务器的连接可以使用 AP 模式直接连接、也可以通过 STA 模式下的路由器间接连接。  从这种意义上讲、移动应用程序有一个连接、但移动应用程序可能会发送多个请求、而无需等待响应。  在这种情况下、是否有办法确保 CC3120在请求溢出时不会产生堆栈溢出?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我希望执行的瓶颈将是 NWP 中内部 HTTP 服务器的行为(由于内存资源不足、TCP 连接可能会被阻止、直到应用处理请求时释放缓冲区)。 我看不到内存损坏的明显原因、但我想这不是该接口的典型用例、因此您可能会发现新问题。

    除非确实有必要、否则我将坚持请求响应方法。

    您可以考虑的另一个选项是使用在标准 SL (TCP)套接字之上工作的 SDK HTTPServer 库。 由于应用端可用的 RAM 越多、这应该支持更高的带宽。

    您是否遇到了堆栈溢出或堆内存问题? 如果是、请提供详细信息。  

    通过使用 CCS 和 TIRTOS、我们提供了几种有助于分析运行时存储器消耗(https://processors.wiki.ti.com/index.php/Runtime_Object_View_(ROV)的工具、但您有责任确保为您的特定用例分配足够的存储器。

    BR、

    Kobi

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢 Kobi、如果我们有其他问题、我将尝试使用 HTTPServer。  目前、移动应用程序已被更改、以获得对每个请求的响应、这种响应效果非常好。

    Gary