#pragma once #include "esp_err.h" #include "esp_log.h" #include "mdns.h" static const char *SERVICE_DISCOVERY_TAG = "SERVICE_DISCOVERY_TAG"; static void service_discovery_init() { // 初始化 mDNS 服务 esp_err_t err = mdns_init(); if (err) { ESP_LOGE(SERVICE_DISCOVERY_TAG, "MDNS Init failed: %d\n", err); return; } // 设置 hostname mdns_hostname_set("ambient-light-board"); // 设置默认实例 mdns_instance_name_set("ivan"); // 添加服务 mdns_service_add(NULL, "_ambient_light", "_udp", 23042, NULL, 0); mdns_service_add(NULL, "_http", "_tcp", 80, NULL, 0); // 注意:必须先添加服务,然后才能设置其属性 // web 服务器使用自定义的实例名 mdns_service_instance_name_set("_ambientlight_web", "_tcp", "Ambient Light Board Web Server"); }