二进制数据的 ESP32 websocket 客户端帧分片配置

ESP32 websocket client frame fragmentation configuration for binary data

我正在尝试从带摄像头的 ESP32 将摄像头帧发送到网络套接字服务器。我正在使用 ESP-IDF 在设备上实现客户端网络套接字。具体来说,我正在使用:https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/protocols/esp_websocket_client.html.

我注意到服务器没有从设备接收到完整帧的问题。我做了一些挖掘,通读了 RFC6455 并意识到了帧碎片的概念。我现在的想法是,相机帧(640 x 480 像素)需要在发送前进行分段。我通读了 ESP-IDF 文档,只看到一处提到碎片。

我自己实现它感觉很舒服,但似乎没有办法使用 ESP-IDF 网络套接字客户端库。

有没有人知道如何设置这些参数,或者是否有某种方法可以在设备上启用本机帧碎片?

查看 the source code,如果消息超过 buffer_size 的大小,消息似乎已经被分段了。

buffer_size 的默认大小为 1024 字节。您可以在配置中更改它。

const esp_websocket_client_config_t websocket_cfg = {
    ...
    .buffer_size = 512,
};