皮皮网

【光纤线传源码音频】【淘卷吧源码】【动力节点 springboot 源码】mongoose源码解析

来源:oracle连接工具 源码 时间:2024-12-22 23:54:02

1.C++开源http服务框架WHttpServer

mongoose源码解析

C++开源http服务框架WHttpServer

       介绍

       基于mongoose 7.3版本的源码源码,经过二次封装和修改,解析WHttpServer是源码一个高性能的C++开源HTTP服务框架。该框架支持Linux操作系统,解析macOS系统下需要自行适配库,源码暂时未验证在Windows系统下的解析光纤线传源码音频运行情况。用户可以通过查看示例文件(HttpExample.cpp、源码HttpExample.h和main.cpp)来了解如何在普通接口、解析大文件上传、源码大文件下载、解析chunk流文件下载等场景中使用。源码

       运行操作系统

       WHttpServer适用于Linux操作系统。解析在macOS系统上可以运行,源码淘卷吧源码但需要修改CMakeLists.txt文件以适配openssl库。解析Windows系统理论上可以运行,源码但因无测试支持,暂不推荐。

       安装教程

       将whttp-server-core目录下的文件复制到您的项目中即可完成安装。

       接口说明

       以下是动力节点 springboot 源码WHttpServer提供的接口及其功能:

       bool init(int maxEventThreadNum): 初始化线程池,设置最大线程数。

       bool startHttp(int port): 开启HTTP服务,指定端口号。

       bool startHttps(int port, string certPath, string keyPath): 开启HTTPS服务,指定端口号和证书路径。

       bool stop(): 停止HTTP和HTTPS服务。61H源码

       bool run(): 服务运行的核心函数,需要外部循环调用。

       bool isRunning(): 检查服务是否正在运行。

       void addHttpApi(const string &uri, HttpCbFun fun, int httpMethods): 添加普通的HTTP回调接口,通过不同的httpMethods设置HTTP方法。

       void addChunkHttpApi(const string &uri,pytorch源码分析课程 HttpCbFun fun, int httpMethods): 为可能超过3M大小的文件上传场景添加数据块HTTP回调接口。

       void setHttpFilter(HttpFilterFun filter): 设置HTTP接口的过滤函数,用于过滤不符合条件的请求。

       void forceCloseHttpConnection(shared_ptr httpMsg): 强制关闭与客户端的连接。

       void addSendMsgToQueue(shared_ptr httpMsg, const char* data, int len): 向客户端发送数据,先放入缓冲区,等待下次循环发送。

       void addSendMsgToQueue(shared_ptr httpMsg, string *sendMsg): 与上一个函数的字符串版本。

       void httpReplyJson(shared_ptr httpMsg, int httpCode, string head, string body): 向客户端发送JSON格式的响应。

       string formJsonBody(int code, string message): 生成JSON字符串。

       bool isClientDisconnect(shared_ptr httpMsg): 检查客户端是否主动断开连接。

       shared_ptr deQueueHttpChunk(shared_ptr httpMsg): 处理大文件上传时的块数据。

       bool addStaticWebDir(const string &dir, const string &header = ""): 添加静态网页目录接口。

       mg_http_status_code_str(int status_code): 返回HTTP状态码对应的字符串。

       重要数据类型

       提供以下两个数据类型:

       using HttpCbFun = std::function &);: HTTP接口回调函数的类型。

       using HttpFilterFun = std::function &): HTTP接口过滤函数的类型。

       注意事项

       所有HTTP回调函数在子线程中运行,同一回调可能在不同线程中运行,注意线程安全。

       run函数内部未加锁,非线程安全,初始化和启动服务的函数调用应在run之前。

       添加HTTP接口时,uri应避免重复匹配,否则只执行最后一个匹配的接口。建议直接使用'/'作为uri开头。

       示例代码

       初始化代码示例。

       在main函数中启动服务的示例代码。

       HTTP接口回调的示例代码。