ESP-CoAP 服务器调用资源处理程序而不接收包

ESP-CoAP server calls resource handler without receiving packages

我实现了一个 coap 服务器:

#include <coap_server.h>
coapServer coap;
void getListOfWiFi(coapPacket *packet, IPAddress ip, int port, int obs) //id = 0 GET
{
  Serial.println("hello");
    int numberOfNetworks = WiFi.scanNetworks();

    String WifiList = "";
    for (int i = 0; i < numberOfNetworks - 1; i++)
    {
        WifiList += WiFi.SSID(i) + "####";
    }
    WifiList += WiFi.SSID(numberOfNetworks - 1);
    char *temp = new char[WifiList.length() + 1];
    WifiList.toCharArray(temp, WifiList.length() + 1);

    coap.sendResponse(ip, port, temp);
    Serial.println("goodbye");
}
void setup()
{
       coap.server(getListOfWiFi, "wifilist");
       coap.start(5683);
}
void loop()
{
     coap.loop();
}

当启动esp时,串口监视器的输出是:

hello
goodbye
hello
goodbye
hello
goodbye
hello
goodbye
hello
goodbye
hello
goodbye

并且它在没有任何接收数据包或请求的情况下继续打印... 为什么会这样? 谢谢

我正在使用这个 coap 库:
https://github.com/automote/ESP-CoAP esp8266

ip和端口的输出是:

(IP unset)
port : 
0

看起来这个特定的 CoAP 库在内部 regularly polling 是第一个注册的资源,用于更改最后收到的 CoAP 消息,无论何时收到任何包,都可能检测是否要发送观察。

您可能想与库的作者讨论这个问题,当它被调用时它看起来像是库中的一个错误。