lim是一套轻量级的高性能通信框架,基于C/C++语言开发,采用全异步通信模式,内部集成了HTTP、HTTPS、WebSocket通信协议实现,目前支持Widows和Liux平台。
示例代码:
#iclude<lim/base/logger.h>#iclude<lim/base/bootstrap.h>#iclude<lim/base/server_chael_sessio.h>#iclude<lim/http/http_bootstrap_cofig.h>#iclude<lim/http/http_respose_sessio.h>amespacelim{ classHttpServer:publicHttpFullRequestSessio{ public: HttpServer(SocketChael&chael,BootstrapCofig&cofig):HttpFullRequestSessio(chael,cofig){ RegistHadleRouter("POST","/test",std::bid(&HttpsServer::PostTestHadle,this,std::placeholders::_1)); } virtual~HttpsServer()=default; private: boolPostTestHadle(Message&request){ HttpFullResposehttp_respose(200,"OK","HTTP/1.1"); itlegth=http_respose.Cotet().Cotet().WriteBytes("{\"aa\":8}",strle("{\"aa\":8}")); http_respose.Headers().SetHeaderValue("Coectio","close"); http_respose.Headers().SetHeaderValue("Cotet-Type","applicatio/jso"); http_respose.Headers().SetHeaderValue("Cotet-Legth",std::to_strig(legth)); WriteHttpRespose(http_respose,[&]{ Sigal(ExecuteEvet::KILL_EVENT);//发送完毕关闭连接 }); returtrue; } };}usigamespacelim;itmai(){ Logger*logger=Logger::GetLogger("demo"); SocketChael::IitEviromet(); //服务监听器&处理线程池 EvetLoopserver_evet_loop; ExecuteThreadserver_execute_thread; //客户端连接监听器&处理线程池 EvetLoopGroupworker_evet_loop_group; ExecuteThreadGroupworke_execute_thread_group; HttpBootstrapCofigcofig(worker_evet_loop_group,worke_execute_thread_group,server_evet_loop,server_execute_thread); //设置处理超时时间 cofig.SetTimeout(30*1000); //异常回掉函数 cofig.SetLoggerCallback([&](LoggerLevellevel,coststd::strig&message){ TRACE_ERROR(logger,"%s",message.c_str()); }); Bootstrapstrap=Bootstrap(cofig); strap.Bid<ServerChaelSessio<HttpServer>>("0.0.0.0",8095); while(1){ std::this_thread::sleep_for(std::chroo::millisecods(1000*5)); } retur0;}










评论