两个服务器在同一个 ESP32 程序上? ESPAsyncWebServer 和 ESP32WebServer

Posted

技术标签:

【中文标题】两个服务器在同一个 ESP32 程序上? ESPAsyncWebServer 和 ESP32WebServer【英文标题】:Two server on the same ESP32 program ? ESPAsyncWebServer and ESP32WebServer 【发布时间】:2021-08-11 14:48:00 【问题描述】:

我正在开发 esp32 模块,我制作了一个 Web 界面来显示传感器值,使用:

ESPAsyncWebServer.h 库和 AsyncWebServer 服务器(80);

但现在我想添加一个相机,但对于后者我必须使用:

ESP32WebServer.h 库和 ESP32WebServer server2(80);

请问如何在同一个程序中使用这两个服务器?当我尝试这样做时,我可以编译脚本,但只有服务器女巫 begin.server() 或 begin.server2() 是第一个它可以工作,第二个没有!

我也尝试使用 server.end() server2.begin() 来使用另一台服务器,但它也不起作用(它说 server2.end() 对于 ESP32WebServer.h 库不存在)

谢谢你,对不起我的英语。

【问题讨论】:

【参考方案1】:

您不能在同一个端口(本例中为 80)上运行两个服务器。

端口号唯一标识设备上将处理与该连接关联的数据的软件。同一端口上不能有两台不同的服务器。

摄像头网络服务器软件可能在端口 80 上嵌入了流式视频,因此如果您在不同的端口号上运行它,它的某些部分可能无法正常工作。

在不同的端口上创建两个服务器:

ESP32WebServer server(80);   // camera software
AsyncWebServer server2(81);  // everything else

然后您将通过以下链接访问异步 Web 服务器:

http://esp-ip-address:81/path

【讨论】:

谢谢你,我确实喜欢你的建议,现在它可以在两台服务器上正常工作。 如果它有效,请接受此答案作为解决方案,以便其他人可以解决问题。

以上是关于两个服务器在同一个 ESP32 程序上? ESPAsyncWebServer 和 ESP32WebServer的主要内容,如果未能解决你的问题,请参考以下文章

ESP32基础应用之使用两个ESP32通过阿里云物联网平台实现相互通信

ESP32基础应用之使用两个ESP32通过阿里云物联网平台实现相互通信

Arduino ESP32 基于Web服务端SD文件管理系统完善

esp32tcpclient最大传输的数据长度

酷易物联-microPython教程系列通过文件模板配置ESP32:ESP32将服务器发送的font信息显示在OLED屏幕上

酷易物联-microPython教程系列通过文件模板配置ESP32:ESP32将服务器发送的font信息显示在OLED屏幕上