From e537815d186c18cd96cd84ed2ac12fd721380d19 Mon Sep 17 00:00:00 2001 From: liuyimin Date: Mon, 10 Dec 2018 12:33:14 +0800 Subject: [PATCH] Add echo HTTPS server example --- readme.md | 35 ++++++++++++++++++++++++++++++++++- readme_cn.md | 33 ++++++++++++++++++++++++++++++++- 2 files changed, 66 insertions(+), 2 deletions(-) diff --git a/readme.md b/readme.md index ba31eb044..84a260db0 100644 --- a/readme.md +++ b/readme.md @@ -141,6 +141,39 @@ int main(int argc, char* argv[]) { ``` +### An echo HTTPS server + +First generate an SSL certificate chain file +```bash +openssl req -newkey rsa:2048 -nodes -keyout server.key -x509 -days 365 -out server.pem +``` + +```cpp +#include + +int main(int argc, char* argv[]) { + std::vector ports = { 9009, 23456, 23457 }; + int thread_num = 2; + evpp::http::Server server(thread_num); + server.RegisterHandler("/echo", + [](evpp::EventLoop* loop, + const evpp::http::ContextPtr& ctx, + const evpp::http::HTTPSendResponseCallback& cb) { + cb(ctx->body().ToString()); } + ); + // Configure default SSL settings + server.setPortSSLDefaultOption(true,"./server.pem","./server.key"); + + server.Init(ports); + server.Start(); + while (!server.IsStopped()) { + usleep(1); + } + return 0; +} + +``` + ### An echo UDP server @@ -206,4 +239,4 @@ Thanks for [libevent], [glog], [gtest], [Golang], [LevelDB], [rapidjson] project [boost]:http://www.boost.org/ [evpp]:https://github.com/Qihoo360/evpp [evmc]:https://github.com/Qihoo360/evpp/tree/master/apps/evmc -[evnsq]:https://github.com/Qihoo360/evpp/tree/master/apps/evnsq \ No newline at end of file +[evnsq]:https://github.com/Qihoo360/evpp/tree/master/apps/evnsq diff --git a/readme_cn.md b/readme_cn.md index ef1a2b8ee..435342e74 100644 --- a/readme_cn.md +++ b/readme_cn.md @@ -155,6 +155,37 @@ int main(int argc, char* argv[]) { ``` +### An echo HTTPS server + +支持SSL需要证书和密匙,可以简单使用下面的命令生成一个用于测试的密匙文件和证书链文件。 +```bash +openssl req -newkey rsa:2048 -nodes -keyout server.key -x509 -days 365 -out server.pem +``` + +```cpp +#include + +int main(int argc, char* argv[]) { + std::vector ports = { 9009, 23456, 23457 }; + int thread_num = 2; + evpp::http::Server server(thread_num); + server.RegisterHandler("/echo", + [](evpp::EventLoop* loop, + const evpp::http::ContextPtr& ctx, + const evpp::http::HTTPSendResponseCallback& cb) { + cb(ctx->body().ToString()); } + ); + // 配置默认的SSL选项(可以针对端口分别设置,请参考Server::setPortSSLOption) + server.setPortSSLDefaultOption(true,"./server.pem","./server.key"); + + server.Init(ports); + server.Start(); + while (!server.IsStopped()) { + usleep(1); + } + return 0; +} +``` ### An echo UDP server @@ -206,4 +237,4 @@ int main(int argc, char* argv[]) { [boost]:http://www.boost.org/ [evpp]:https://github.com/Qihoo360/evpp [evmc]:https://github.com/Qihoo360/evpp/tree/master/apps/evmc -[evnsq]:https://github.com/Qihoo360/evpp/tree/master/apps/evnsq \ No newline at end of file +[evnsq]:https://github.com/Qihoo360/evpp/tree/master/apps/evnsq