我尝试构建一个系统,通过 ESP8266WebServer 方法从 ESP8266 向网页发送数据,例如简单的开/关状态。
在 ESP8266 端,我有一个名为“handleUpdateData”的函数,我在服务器处理程序声明中使用了这个声明
代码:
全选server->on(\"/updatedata\", handleUpdateData);
当我得到一些我要检查的状态变化时异步调用。
在“handleUpdateData”函数中,我使用数据流语法构建了带有“page”变量的 JSON 字符串
代码:
全选id: 12345
data: { \"code\": \"123\",
data: \"status\": \"xxxx\" }
并通过这条指令发送
代码:
全选server->send(200, \"text/event-stream\", page);
在网页端,我首先在 javascript 中有这个声明
代码:
全选var eventSource = new EventSource(\"/updatedata\");
之后与
代码:
全选eventSource.onmessage = func
tion(e) {
debug(\"onmessage: \"+e.data);
}
或(无差异)
代码:
全选eventSource.addEventListener(\"message\", function(e) {
debug(\"received message: \"+e.data);
}
在这两种情况下,我每 5 秒定期接收一次数据。
怎么了?