【Linux】嵌入式Web服务库:mongoose
1、简介
Mongoose 是一款专为嵌入式系统设计的轻量级网络库,采用 C 语言编写,支持 TCP、UDP、HTTP、WebSocket、MQTT 等多种协议,基于事件驱动的非阻塞 API 设计。其核心特点包括:
- 小巧易用:仅需 mongoose.c 和 mongoose.h 两个文件即可集成,无第三方依赖。
- 跨平台:适用于 Linux、RTOS 等嵌入式环境,甚至可运行于资源受限设备(如 STM32)。
- 协议丰富:涵盖 HTTP 服务器/客户端、MQTT 通信、WebSocket 双向通信等场景。
- 稳定可靠:被多家知名企业用于商业产品,GitHub Star 超 11.5K
- 基于事件驱动和非阻塞 I/O 模型
官网:https://mongoose.ws/
源码:https://github.com/cesanta/mongoose
2、核心设计
1)数据结构:
- struct mg_mgr:全局事件管理器,管理所有活动连接。
- struct mg_connection:描述单个网络连接,包含收发缓冲区(recv_mbuf、send_mbuf)及事件回调函数