×

lim跨平台网络通信框架

消耗积分:0 | 格式:zip | 大小:4.03 MB | 2022-06-21

李平

分享资料个

授权协议 未知
开发语言 C/C++
操作系统 跨平台
软件类型 开源软件

软件简介

lim 是一套轻量级的高性能通信框架,基于 C/C++ 语言开发,采用全异步通信模式,内部集成了 HTTP、HTTPS、WebSocket 通信协议实现,目前支持 Windows 和 Linux 平台。

示例代码:

#include 
#include 
#include 
#include 
#include 

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>("0.0.0.0", 8095);

  while (1) {
    std::this_thread::sleep_for(std::chrono::milliseconds(1000 * 5));
  }

  return 0;
}

 

 

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !