99 [](
const std::shared_ptr<MasterRequest>& req) {
100 VLOG(1) << req->getSocketContext()->getSocketConnection()->getConnectionName() <<
": OnRequestStart";
105 req->set(
"Connection",
"keep-alive");
106 req->setTrailer(
"MyTrailer",
110 [](
const std::shared_ptr<Request>& req,
const std::shared_ptr<Response>& res) {
111 logResponse(req, res);
113 [](
const std::shared_ptr<Request>&,
const std::string&) {
118 req->url =
"/sendfile/";
119 req->set(
"Connection",
"keep-alive");
121 "/home/voc/projects/snodec/snode.c/CMakeLists.tt",
124 VLOG(1) << req->getSocketContext()->getSocketConnection()->getConnectionName()
125 <<
" HTTP: Request accepted: GET / HTTP/" << req->httpMajor <<
"." << req->httpMinor;
126 VLOG(1) <<
" /home/voc/projects/snodec/snode.c/CMakeLists.tt";
128 LOG(ERROR) << req->getSocketContext()->getSocketConnection()->getConnectionName()
129 <<
" HTTP: Request failed: GET / HTTP/" << req->httpMajor <<
"." << req->httpMinor;
130 PLOG(ERROR) <<
" /home/voc/projects/snodec/snode.c/CMakeLists.tt";
133 [](
const std::shared_ptr<Request>& req,
const std::shared_ptr<Response>& res) {
134 logResponse(req, res);
136 [](
const std::shared_ptr<Request>&,
const std::string&) {
142 req->set(
"Connection",
"keep-alive");
143 req->setTrailer(
"MyTrailer",
147 [](
const std::shared_ptr<Request>& req,
const std::shared_ptr<Response>& res) {
148 logResponse(req, res);
150 [](
const std::shared_ptr<Request>&,
const std::string&) {
156 req->set(
"Connection",
"keep-alive");
158 [](
const std::shared_ptr<Request>& req,
const std::shared_ptr<Response>& res) {
159 logResponse(req, res);
161 [](
const std::shared_ptr<Request>&,
const std::string&) {
165 req->url =
"/index.html";
168 [](
const std::shared_ptr<Request>& req,
const std::shared_ptr<Response>& res) {
169 logResponse(req, res);
171 [](
const std::shared_ptr<Request>&,
const std::string&) {
174 req->set(
"Connection",
"keep-alive");
176 [](
const std::shared_ptr<Request>& req,
const std::shared_ptr<Response>& res) {
177 logResponse(req, res);
179 [req](
const std::shared_ptr<Request>&,
const std::string&) {
181 req->url =
"/index.html";
182 req->set(
"Connection",
"keep-alive");
184 [](
const std::shared_ptr<Request>& req,
const std::shared_ptr<Response>& res) {
185 logResponse(req, res);
187 [req](
const std::shared_ptr<Request>&,
const std::string&) {
190 req->set(
"Connection",
"keep-alive");
192 [](
const std::shared_ptr<Request>& req,
const std::shared_ptr<Response>& res) {
193 logResponse(req, res);
195 [req](
const std::shared_ptr<Request>&,
const std::string&) {
197 req->url =
"/index.html";
198 req->set(
"Connection",
"keep-alive");
200 [](
const std::shared_ptr<Request>& req,
const std::shared_ptr<Response>& res) {
201 logResponse(req, res);
203 [req](
const std::shared_ptr<Request>&,
const std::string&) {
206 req->set(
"Connection",
"keep-alive");
208 [](
const std::shared_ptr<Request>& req,
const std::shared_ptr<Response>& res) {
209 logResponse(req, res);
211 [req](
const std::shared_ptr<Request>&,
const std::string&) {
213 req->url =
"/index.html";
214 req->set(
"Connection",
"keep-alive");
216 [](
const std::shared_ptr<Request>& req,
const std::shared_ptr<Response>& res) {
217 logResponse(req, res);
219 [req](
const std::shared_ptr<Request>&,
const std::string&) {
222 req->set(
"Connection",
"keep-alive");
224 [](
const std::shared_ptr<Request>& req,
const std::shared_ptr<Response>& res) {
225 logResponse(req, res);
227 [req](
const std::shared_ptr<Request>&,
const std::string&) {
229 req->url =
"/index.html";
230 req->set(
"Connection",
"keep-alive");
232 [](
const std::shared_ptr<Request>& req,
const std::shared_ptr<Response>& res) {
233 logResponse(req, res);
235 [req](
const std::shared_ptr<Request>&,
const std::string&) {
238 req->set(
"Connection",
"keep-alive");
240 [](
const std::shared_ptr<Request>& req,
const std::shared_ptr<Response>& res) {
241 logResponse(req, res);
243 [req](
const std::shared_ptr<Request>&,
const std::string&) {
245 req->url =
"/index.html";
246 req->set(
"Connection",
"keep-alive");
248 [](
const std::shared_ptr<Request>& req,
const std::shared_ptr<Response>& res) {
249 logResponse(req, res);
251 [req](
const std::shared_ptr<Request>&,
const std::string&) {
254 req->set(
"Connection",
"keep-alive");
256 [](
const std::shared_ptr<Request>& req,
const std::shared_ptr<Response>& res) {
257 logResponse(req, res);
259 [req](
const std::shared_ptr<Request>&,
const std::string&) {
261 req->url =
"/index.html";
262 req->set(
"Connection",
"keep-alive");
264 [](
const std::shared_ptr<Request>& req,
const std::shared_ptr<Response>& res) {
265 logResponse(req, res);
267 [req](
const std::shared_ptr<Request>&,
const std::string&) {
270 req->set(
"Connection",
"keep-alive");
272 [](
const std::shared_ptr<Request>& req,
const std::shared_ptr<Response>& res) {
273 logResponse(req, res);
275 [req](
const std::shared_ptr<Request>&,
const std::string&) {
277 req->url =
"/index.html";
278 req->set(
"Connection",
"keep-alive");
280 [](
const std::shared_ptr<Request>& req,
const std::shared_ptr<Response>& res) {
281 logResponse(req, res);
283 [req](
const std::shared_ptr<Request>&,
const std::string&) {
286 req->set(
"Connection",
"keep-alive");
288 [](
const std::shared_ptr<Request>& req,
const std::shared_ptr<Response>& res) {
289 logResponse(req, res);
291 [req](
const std::shared_ptr<Request>&,
const std::string&) {
295
296
297
299
300
301
303
304
305
307 const std::shared_ptr<web::http::client::tools::EventSource> eventStream_1 =
308 web::http::legacy::NET::EventSource(
"http://" + req->hostFieldValue,
"/sse?hihi=3");
311 eventStream_1->onOpen([]() {
312 VLOG(0) <<
"OnOpen 1";
315 eventStream_1->onError([]() {
316 VLOG(0) <<
"OnError 1";
319 eventStream_1->onMessage([](
const web::http::client::tools::EventSource::MessageEvent& message) {
320 VLOG(0) <<
"OnMessage 1:1: " << message.data;
322 eventStream_1->onMessage([](
const web::http::client::tools::EventSource::MessageEvent& message) {
323 VLOG(0) <<
"OnMessage 1:2: " << message.data;
325 eventStream_1->addEventListener(
"myevent", [](
const web::http::client::tools::EventSource::MessageEvent& message) {
326 VLOG(0) <<
"EventListener for 'myevent' 1:1: " << message.lastEventId <<
" : " << message.data;
328 eventStream_1->addEventListener(
"myevent", [](
const web::http::client::tools::EventSource::MessageEvent& message) {
329 VLOG(0) <<
"EventListener for 'myevent' 1:2: " << message.lastEventId <<
" : " << message.data;
332 core::timer::Timer::singleshotTimer(
334 eventStream_1->close();
339 auto eventStream_2 = web::http::legacy::NET::EventSource(
"http://localhost:8080/sse");
342 eventStream_2->onOpen([]() {
343 VLOG(0) <<
"OnOpen 2";
346 eventStream_2->onError([]() {
347 VLOG(0) <<
"OnError 2";
350 eventStream_2->onMessage([](
const web::http::client::tools::EventSource::MessageEvent& message) {
351 VLOG(0) <<
"OnMessage 2:1: " << message.data;
353 eventStream_2->onMessage([](
const web::http::client::tools::EventSource::MessageEvent& message) {
354 VLOG(0) <<
"OnMessage 2:2: " << message.data;
356 eventStream_2->addEventListener(
"myevent", [](
const web::http::client::tools::EventSource::MessageEvent& message) {
357 VLOG(0) <<
"EventListener for 'myevent' 2:1: " << message.lastEventId <<
" : " << message.data;
359 eventStream_2->addEventListener(
"myevent", [](
const web::http::client::tools::EventSource::MessageEvent& message) {
360 VLOG(0) <<
"EventListener for 'myevent' 2:2: " << message.lastEventId <<
" : " << message.data;
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
502 []([[maybe_unused]]
const std::shared_ptr<Request>& req) {
503 VLOG(1) << req->getSocketContext()->getSocketConnection()->getConnectionName() <<
": OnRequestEnd";
506 client.setOnConnect([](SocketConnection* socketConnection) {
507 VLOG(1) << socketConnection->getConnectionName() <<
": OnConnect";
509 VLOG(1) <<
"\tLocal: " << socketConnection->getLocalAddress().toString();
510 VLOG(1) <<
"\tPeer: " << socketConnection->getRemoteAddress().toString();
513 client.setOnDisconnect([](SocketConnection* socketConnection) {
514 VLOG(1) << socketConnection->getConnectionName() <<
": OnDisconnect";
516 VLOG(1) <<
"\tLocal: " << socketConnection->getLocalAddress().toString();
517 VLOG(1) <<
"\tPeer: " << socketConnection->getRemoteAddress().toString();