You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ESP8266 Station模式下EventSource动态拼接IP地址失效问题求助

问题解决:ESP8266动态IP下EventSource的URL拼接问题

首先看你代码里的拼写错误:你定义的str3 = '/see',但注释里能正常工作的路径是/sse,这大概率是导致动态拼接失效的直接原因——你拼接出来的实际路径是http://xxx.xxx.xxx.xxx/see,而ESP8266的SSE端点是/sse,路径不匹配自然无法正常连接。

可行解决方案

方案1:使用相对路径(最推荐)

完全不用拼接IP,直接用相对路径初始化EventSource,浏览器会自动基于当前页面的地址(也就是ESP8266的动态IP)补全完整URL:

var source = new EventSource('/sse');

方案2:用location.origin拼接绝对路径

如果需要绝对路径,用location.origin替代手动拼接协议和IP,它会自动包含当前页面的协议(http/https)、主机IP和端口号,避免手动拼接的错误:

let strIpAddress = location.origin + '/sse';
var source = new EventSource(strIpAddress);

可选:给ESP8266绑定静态IP

如果你希望IP固定,可以在路由器的DHCP设置里,给ESP8266的MAC地址分配固定IP,这样每次模块连接Wi-Fi都会拿到同一个IP,也能解决问题,但这属于网络配置层面的方案,不是必须的。

额外排查点

如果修正拼写后还是有问题,可以检查:

  • 确认ESP8266的SSE服务端端点确实是/sse,没有拼写错误
  • 检查浏览器控制台的网络请求,看EventSource的请求是否返回200状态码,有没有报错信息
  • 确认location.host是否包含端口号(如果ESP8266的web服务不是用80端口),此时用location.origin会更可靠

内容的提问来源于stack exchange,提问作者Michael Wenning

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 20:03:21