lim 介绍
lim 是一套轻量级的高性能通信框架,基于 C/C++ 语言开发,采用全异步通信模式,内部集成了 HTTP、HTTPS、WebSocket
通信协议实现,目前支持 Windows 和 Linux 平台。
示例代码:
#include <lim/base/logger.h> #include <lim/base/bootstrap.h> #include <lim/base/server_channel_session.h> #include <lim/http/http_bootstrap_config.h> #include <lim/http/http_response_session.h> namespace lim { class HttpServer: public HttpFullRequestSession { public: HttpServer(SocketChannel &channel, BootstrapConfig &config): HttpFullRequestSession(channel, config) { RegistHandleRouter("POST", "/test", std::bind(&HttpsServer::PostTestHandle, this, std::placeholders::_1)); } virtual ~HttpsServer() = default; private: bool PostTestHandle(Message &request) { HttpFullResponse http_response(200, "OK", "HTTP/1.1"); int length = http_response.Content().Content().WriteBytes("{\"aa\":8}", strlen("{\"aa\":8}")); http_response.Headers().SetHeaderValue("Connection", "close"); http_response.Headers().SetHeaderValue("Content-Type", "application/json"); http_response.Headers().SetHeaderValue("Content-Length", std::to_string(length)); WriteHttpResponse(http_response, [&] { Signal(ExecuteEvent::KILL_EVENT); //发送完毕关闭连接 }); return true; } }; } using namespace lim; int main() { Logger *logger = Logger::GetLogger("demo"); SocketChannel::InitEnviroment(); //服务监听器&处理线程池 EventLoop server_event_loop; ExecuteThread server_execute_thread; //客户端连接监听器&处理线程池 EventLoopGroup worker_event_loop_group; ExecuteThreadGroup worke_execute_thread_group; HttpBootstrapConfig config(worker_event_loop_group, worke_execute_thread_group, server_event_loop, server_execute_thread); //设置处理超时时间 config.SetTimeout(30 * 1000); //异常回掉函数 config.SetLoggerCallback([&](LoggerLevel level, const std::string &message) { TRACE_ERROR(logger, "%s", message.c_str()); }); Bootstrap strap = Bootstrap(config); strap.Bind<ServerChannelSession<HttpServer>>("0.0.0.0", 8095); while (1) { std::this_thread::sleep_for(std::chrono::milliseconds(1000 * 5)); } return 0; }
lim 官网
https://github.com/limzhoujx/lim
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。