58int main(
int argc,
char* argv[]) {
61 using LegacyWebApp = express::legacy::
in::WebApp;
62 using Request = LegacyWebApp::Request;
63 using Response = LegacyWebApp::Response;
64 using SocketAddress = LegacyWebApp::SocketAddress;
66 const LegacyWebApp legacyApp
("legacy");
68 legacyApp.use(express::
middleware::VerboseRequest());
70 legacyApp.get(
"/ws", [](
const std::shared_ptr<Request>& req,
const std::shared_ptr<Response>& res) {
73 res->
upgrade(req
, [req, res, connectionName](
const std::string& name) {
75 VLOG(1) << connectionName <<
": Successful upgrade:";
76 VLOG(1) << connectionName <<
": Requested: " << req->
get("upgrade");
77 VLOG(1) << connectionName <<
": Selected: " << name;
81 VLOG(1) << connectionName <<
": Can not upgrade to any of '" << req->
get("upgrade") <<
"'";
89 VLOG(1) <<
"HTTP GET on "
91 if (req->
url ==
"/" || req->
url ==
"/index.html") {
92 req->
url =
"/wstest.html";
95 VLOG(1) << CMAKE_CURRENT_SOURCE_DIR
"/html" + req->url;
96 res->
sendFile(CMAKE_CURRENT_SOURCE_DIR
"/html" + req->url, [req, res](
int errnum) {
100 VLOG(1) <<
"HTTP response send file failed: " << std::strerror(errnum);
108 VLOG(0) <<
"------------------- Legacy Server Init: " << acceptEventReceiver
115 const core::socket::
State& state) {
118 VLOG(1) << instanceName <<
" listening on '" << socketAddress
.toString() <<
"'";
121 VLOG(1) << instanceName <<
" disabled";
132 VLOG(1) <<
"Legacy Routes:";
134 route.erase(std::remove(route.begin(), route.end(),
'$'), route.end());
136 VLOG(1) <<
" " << route;
140 using TlsWebApp = express::tls::
in::WebApp;
141 using Request = TlsWebApp::Request;
142 using Response = TlsWebApp::Response;
143 using SocketAddress = TlsWebApp::SocketAddress;
145 const TlsWebApp tlsApp
("tls");
147 tlsApp.use(express::
middleware::VerboseRequest());
149 tlsApp.get(
"/ws", [](
const std::shared_ptr<Request>& req,
const std::shared_ptr<Response>& res) {
152 res->
upgrade(req
, [req, res, connectionName](
const std::string& name) {
154 VLOG(1) << connectionName <<
": Upgrade success:";
155 VLOG(1) << connectionName <<
": Requested: " << req->
get("upgrade");
156 VLOG(1) << connectionName <<
": Selected: " << name;
160 VLOG(1) << connectionName <<
": Can not upgrade to any of '" << req->
get("upgrade") <<
"'";
168 if (req->
url ==
"/" || req->
url ==
"/index.html") {
169 req->
url =
"/wstest.html";
172 VLOG(1) << CMAKE_CURRENT_SOURCE_DIR
"/html" + req->url;
173 res->
sendFile(CMAKE_CURRENT_SOURCE_DIR
"/html" + req->url, [req, res](
int errnum) {
177 VLOG(1) <<
"HTTP response send file failed: " << std::strerror(errnum);
185 VLOG(0) <<
"------------------- TLS Server Init: " << acceptEventReceiver;
188 const core::socket::
State& state) {
191 VLOG(1) << instanceName <<
" listening on '" << socketAddress
.toString() <<
"'";
194 VLOG(1) << instanceName <<
" disabled";
205 VLOG(1) <<
"Tls Routes:";
207 route.erase(std::remove(route.begin(), route.end(),
'$'), route.end());
209 VLOG(1) <<
" " << route;
SocketConnection * getSocketConnection() const