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",
"close");
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&) {
294 const std::shared_ptr<web::http::client::tools::EventSource> eventStream_1 =
295 web::http::legacy::NET::EventSource(
"http://" + req->hostFieldValue,
"/sse?hihi=3");
298 eventStream_1->onOpen([]() {
299 VLOG(0) <<
"OnOpen 1";
302 eventStream_1->onError([]() {
303 VLOG(0) <<
"OnError 1";
306 eventStream_1->onMessage([](
const web::http::client::tools::EventSource::MessageEvent& message) {
307 VLOG(0) <<
"OnMessage 1:1: " << message.data;
309 eventStream_1->onMessage([](
const web::http::client::tools::EventSource::MessageEvent& message) {
310 VLOG(0) <<
"OnMessage 1:2: " << message.data;
312 eventStream_1->addEventListener(
"myevent", [](
const web::http::client::tools::EventSource::MessageEvent& message) {
313 VLOG(0) <<
"EventListener for 'myevent' 1:1: " << message.lastEventId <<
" : " << message.data;
315 eventStream_1->addEventListener(
"myevent", [](
const web::http::client::tools::EventSource::MessageEvent& message) {
316 VLOG(0) <<
"EventListener for 'myevent' 1:2: " << message.lastEventId <<
" : " << message.data;
319 core::timer::Timer::singleshotTimer(
321 eventStream_1->close();
326 auto eventStream_2 = web::http::legacy::NET::EventSource(
"http://localhost:8080/sse");
329 eventStream_2->onOpen([]() {
330 VLOG(0) <<
"OnOpen 2";
333 eventStream_2->onError([]() {
334 VLOG(0) <<
"OnError 2";
337 eventStream_2->onMessage([](
const web::http::client::tools::EventSource::MessageEvent& message) {
338 VLOG(0) <<
"OnMessage 2:1: " << message.data;
340 eventStream_2->onMessage([](
const web::http::client::tools::EventSource::MessageEvent& message) {
341 VLOG(0) <<
"OnMessage 2:2: " << message.data;
343 eventStream_2->addEventListener(
"myevent", [](
const web::http::client::tools::EventSource::MessageEvent& message) {
344 VLOG(0) <<
"EventListener for 'myevent' 2:1: " << message.lastEventId <<
" : " << message.data;
346 eventStream_2->addEventListener(
"myevent", [](
const web::http::client::tools::EventSource::MessageEvent& message) {
347 VLOG(0) <<
"EventListener for 'myevent' 2:2: " << message.lastEventId <<
" : " << message.data;
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
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
469 []([[maybe_unused]]
const std::shared_ptr<Request>& req) {
470 VLOG(1) << req->getSocketContext()->getSocketConnection()->getConnectionName() <<
": OnRequestEnd";
473 client.setOnConnect([](SocketConnection* socketConnection) {
474 VLOG(1) << socketConnection->getConnectionName() <<
": OnConnect";
476 VLOG(1) <<
"\tLocal: " << socketConnection->getLocalAddress().toString();
477 VLOG(1) <<
"\tPeer: " << socketConnection->getRemoteAddress().toString();
480 client.setOnDisconnect([](SocketConnection* socketConnection) {
481 VLOG(1) << socketConnection->getConnectionName() <<
": OnDisconnect";
483 VLOG(1) <<
"\tLocal: " << socketConnection->getLocalAddress().toString();
484 VLOG(1) <<
"\tPeer: " << socketConnection->getRemoteAddress().toString();