ehttp组件是为了使用c++方便快速的构建httpserver,编写基于http协议json格式的接口,和nginx等传统服务器相比,更加重视开发的便捷性,项目参考restbed实现。
特点linux2.6+
多线程+epoll
强调简洁实用
依赖simple_log日志组件
jsoncppjson序列化组件
性能qps12000+(短连接ab-c10-n10000localhost:3490/hello)
qps16000+(长连接ab-c10-n10000-klocalhost:3490/hello)
构建&&测试 make && make test && ./output/bin/http_server_test 3490 curl "localhost:3490/hello"功能列表http1.0/1.1(keep-alive支持)GET/POST请求
便捷的开发形式
Json格式的数据返回
例子#include#include#include"simple_log.h"#include"http_server.h"voidlogin(Request&request,Json::Value&root){std::stringname=request.get_param("name");std::stringpwd=request.get_param("pwd");LOG_DEBUG("loginuserwhichname:%s,pwd:%s",name.c_str(),pwd.c_str());root["code"]=0;root["msg"]="loginsuccess!";}intmain(){HttpServerhttp_server;http_server.add_mapping("/login",login,POST_METHOD);http_server.set_port(3456); http_server.start_sync();return0;}运行liao@ubuntu:~/workspace/simple_server$ curl "localhost:3490/login" -d "name=tom&pwd=3"{"code":0,"msg":"login success!"}
评论