我在ESP32S3上写了个小程序,让WiFi开始AP模式,然后运行REST server。我是用ESP-IDF 5.1.2写的额。这是我的Main函数
void app_main(void)
{
nvs_flash_init();
ESP_ERROR_CHECK(esp_netif_init());
ESP_ERROR_CHECK(esp_event_loop_create_default());
initialise_mdns();
netbiosns_init();
netbiosns_set_name(CONFIG_EXAMPLE_MDNS_HOST_NAME);
wifi_init_softap();
ESP_ERROR_CHECK(init_fs());
ESP_ERROR_CHECK(start_rest_server(CONFIG_EXAMPLE_WEB_MOUNT_POINT));
}
我遇到的问题是,网页加载的时间很长,一个2MB以下的网页需要加载20到30秒。
- 2024-01-08 13_03_56-Window.png (54.11 KiB) Viewed 26720 times
我用wireshark看了以后,发现主要是浏览器向ESP发送了很多DNS请求(端口 53),然后产生了很多ICMP的错误。程序里我只写了mdns来解析host的IP地址(端口5353)。
- wireshark-dns.png (62.03 KiB) Viewed 26720 times
- 2024-01-08 13_28_42-Window.png (120.36 KiB) Viewed 26720 times
这个额外的延迟好像就是DNS引起的,我让WIFI运行STA模式,网页加载很快,没有问题。只有在AP模式下有这个问题。
请问这个问题怎么解决?谢谢