# http **Repository Path**: yansong_1221/http ## Basic Information - **Project Name**: http - **Description**: No description available - **Primary Language**: C++ - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-06-12 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README cpp-httplib =========== Server Example -------------- ```c++ #include "http/server.h" #include "http/server/context.h" #include "http/app.h" #include "http/nanolog.hpp" //#include "NanoLog.hpp" class test : public http::server::IWebSocketController { public: virtual void onWSEvent(EventType type, http::server::IWebScoketContext *ctx, std::string_view data) { switch (type) { case EventType::EVENT_CONNECT: { LOG_INFO << "on ws connect"; } break; case EventType::EVENT_DATA_BINARY: case EventType::EVENT_DATA_TEXT: case EventType::EVENT_DATA_PING: case EventType::EVENT_DATA_PONG: { LOG_INFO << "on ws message " << std::string(data); ctx->sendWSText(std::string(data)); } break; case EventType::EVENT_CLOSE: { LOG_INFO << "on ws close " << std::string(data); } break; default: break; } } }; class TestFliter : public http::server::IFilterController { public: virtual bool befor(std::shared_ptr req, std::shared_ptr res) { return true; } virtual bool after(std::shared_ptr req, std::shared_ptr res) { return true; } }; class testController : public http::server::BaseController { public: virtual void GET(std::shared_ptr req, std::shared_ptr res) { res->content(http::Status::OK, "hello", "text/pain"); } }; int main() { http::Application app; //nlohmann::json doc; //inja::render("Hello{ name }",doc); nanolog::Logger::initialize(nanolog::GuaranteedLogger(), "./log/", "web", 1); //core::Logger::getInstance().startLogger("./log/"); auto &config = http::server::GlobalConfig::instance(); config.uploadFileDir("./upload"); config.notFoundHandler([](auto req, auto res) { res->redirect("/static"); }); config.execute(); http::Server n(app); n.listen(8080); n.staticDir("/static", "./", {"index.html"}, true); n.websocketRouter("/ws", std::make_shared()); //n.enableSSL("server.pem","server.pem"); n.insertFilterRouter("/static", std::make_shared()); n.staticFS("./favicon.ico", "./favicon.ico"); n.staticDir("/swagger", "./swagger", {"index.html"}); auto group = n.Group("/v1/"); group->insertFilterRouter(std::make_shared()); group->router("/login", std::make_shared()); //LOG_INFO << "11111"; return app.run(); }