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.

[参考译文] CC3235MODSF:Web 协议问题

Guru**** 2553450 points
Other Parts Discussed in Thread: CC3235MODSF, CC3235SF, CC3200, UNIFLASH

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/974898/cc3235modsf-web-protocol-issue

器件型号:CC3235MODSF
主题中讨论的其他器件: CC3235SFCC3200UNIFLASH

您好、Wifi 团队、

客户正在研究项目中使用 CC3235MODSF 组件来实施医疗 WLAN 视频内窥镜。  

他们目前可以通过 WebSocket 并借助 CC3200传输视频图像。 但他们也希望使用5GHz 频段、因此决定升级到 CC3235SF。 遗憾的是、他们几个月来一直在尝试与此组件建立 WebSocket 连接、但现在没有成功。 它们为此使用 sl_Socket .c 库、但 sl_bind 函数似乎无法正常使用。 如果它们通过端口80设置了 HTTP_Server 连接、sl_bind 函数将不再允许此端口用于 WebSocket。 但是、WebSocket 协议需要这样做。

请帮您解决此问题吗?

谢谢!

KR、

Mike

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

    尊敬的 Mike:

    不清楚他们是如何在 CC3235上启用此功能的。

    CC3235 SDK 目前不支持 WebSocket。

    他们需要将网络服务器库从 CC3200 SDK 移植到 Gen2 (CC3235) SDK。

    如果端口80的绑定失败,则应检查内部 HTTP 服务器是否已启用并禁用它:

    SL_NetAppStop (SL_NetApp_HTTP_SERVER_ID);

    BR、

    Kobi

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

    您好、Kobi、

    感谢您的建议。

    F.Y.I、几个月以来、我一直在询问有关 CC3235SF 的 WebSocket 的问题。

    我已将 CC3200服务器库导入 CC3235SF、并且还禁用了内部 HTTP 服务器。

    禁用内部 HTTP 服务器后、sl_bind 函数正在工作并停留在 sl_accept、该操作将返回错误值-11 (即 HTTP Accept RETRY)

    下面是尝试连接 HTML 应用程序时 CCS 的控制台日志。

    我一直在使用 TCP 端口、但最终没有运气。

    令人惊讶的是、我无法修改这些库文件。

    谢谢、此致、

    Vignesh

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

    -11为 SL_ERROR_BSD_EAGAIN (请参阅 simplelink/errors.h)。

    它是非阻塞套接字的典型返回代码。 您需要重新调用 sl_accept、直到获得有效的套接字 ID (>=0)或其他错误代码、而不是等待(阻止)"sl_Accept"返回(客户端连接时)。

    从日志中可以看到、最终(即在第二次尝试中)接受正确返回。

    我不确定"我无法修改这些库文件"是什么意思-它只是一个源代码、我假设您已经更新了它、以便使用 CC3235 SDK 启用它。 您将需要更新代码、以便其能够编译并链接到 CC3235主机驱动程序。

    BR、

    Kobi

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

    您好、Kobi、

    感谢您提供信息。

    我不确定"调用 sl_accept"是什么意思。 从源代码的角度来看、它在 sl_accept 中被定义(>=0)。

    关于日志、在我在浏览器上看到我的 HTML 应用程序之前、它显示"HTTP Accept retry -11"。 使用 IP 地址调用 HTML 后、我会看到以下日志。

    我尝试与我的 HTML 建立连接、但这种连接不会发生(下图)-显示"始终连接"。

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

    当 WebServer 代码 (请参阅 RunHttpServer())在收到-11 (请参阅 sl_EAGAIN 处理)时,它已在循环中调用 sl_accept (sl_accept 在 CreateTCPCLentSocket ()中调用)。  

    我不确定当前问题到底是什么(它不会出现在日志中)、但它接受客户端套接字。

    您需要进一步调试 Web 服务器的状态。

    您是否为此使用 CC3200或 cc3235? 它是否使用 cc3200工作?

    BR、

    Kobi

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

    您好、Kobi、

    当前情况:

    当内部 HTTP 服务器被禁用 、因此无法在浏览器上加载 HTML 应用程序时、会发生这种情况。 (我还尝试从 PC 加载 HTML 文件以检查状态、该状态也不会发生任何情况)

    启用 内部 HTTP 服务器后、在浏览器上使用 IP 地址访问 HTML、但没有 WebSocket 连接。

    使用 CC3200时、此问题不是问题。 尽管 内部 HTTP 服务器已禁用、但在浏览器上加载时、我成功地将 WebSocket 与 HTML 页面连接。

    此外、我们为什么要禁用内部 HTTP 服务器?

    "无法修改库"的意思是、

    我试图弄清楚返回值是-98、但我不能这么做。 为了进行检查、我尝试插入错误以查看编译和调试时的影响、但它仍然成功编译和调试。

    希望这能给您一个更好的想法。

    此致、

    Vignesh

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

    -98是 sl_error_BSD_EADDRINUSE (请参阅 simplelnk/errors.h)。

    内部 HTTP 服务器不支持 WebSocket。 您需要将其禁用,以便主机的 WebServer 使用端口80。

    WebServer 库可以与 FS 配合使用、并且应该能够读取文件(如果存在)。

    我看到您正在尝试访问"/main1.html"-至少在使用 CC3220/35时、您应该避免在访问根文件夹中的文件时出现前导"/"。

    您可以在 sl_FsOpen (从 HttpStatic_InitRequest 调用)中设置断点 、并检查使用的文件名、并将其与文件系统中文件的路径进行比较。

    BR、

    Kobi

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

    您好、Kobi、

    感谢您提供信息。

    正如您所建议的、它不会达到调用 sl_FsOpen 的 HttpStatic_InitRequest 函数中的断点。

    在我看到的控制台上、

    HTTP 服务器套接字0

    正在接受新的连接编号0

    连接已打开

    HTTP 客户端关闭0

    关闭连接

     

    此外、文件名是'/main.html'和 FsDir 'www'。 这也是 Uniflash 中提供的确切路径。 -也随 main1.html 更改(相同的 prob)

    关于"/"抱歉、我不理解。

    我使用 浏览器上的 IP 地址/main1.html 进行访问。 根文件夹-您是从 Uniflash 还是文件资源管理器获取的?

    或者、请告诉我如何避免使用"/"。

    只需要一个信息、这对 HTML 应用程序的影响有多严重?

    此致、

    Vignesh

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

    似乎对等设备关闭了连接(HTTP 客户端关闭0)、即 sl_Recv 返回 len = 0、这意味着对等设备关闭了连接(正常)。 我不确定原因是什么。 您可能需要使用监听器日志进行检查。

    BR、

    Kobi