MCPcopy Create free account
hub / github.com/acl-dev/acl / doWebSocket

Method doWebSocket

lib_acl_cpp/samples/websocket/upload_server/http_servlet.cpp:338–386  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

336}
337
338bool http_servlet::doWebSocket(acl::HttpServletRequest& req,
339 acl::HttpServletResponse&)
340{
341 acl::socket_stream& ss = req.getSocketStream();
342 acl::websocket in(ss), out(ss);
343
344 while (true)
345 {
346 if (in.read_frame_head() == false)
347 {
348 printf("read_frame_head error\r\n");
349 return false;
350 }
351
352 bool ret;
353 unsigned char opcode = in.get_frame_opcode();
354
355 printf("opcode: 0x%x\r\n", opcode);
356
357 switch (opcode)
358 {
359 case acl::FRAME_PING:
360 ret = doPing(in, out);
361 break;
362 case acl::FRAME_PONG:
363 ret = doPong(in, out);
364 break;
365 case acl::FRAME_CLOSE:
366 ret = doClose(in, out);
367 break;
368 case acl::FRAME_TEXT:
369 case acl::FRAME_BINARY:
370 ret = doMsg(in, out);
371 break;
372 case acl::FRAME_CONTINUATION:
373 ret = false;
374 break;
375 default:
376 ret = false;
377 break;
378 }
379
380 if (ret == false)
381 return false;
382 }
383
384 // XXX: NOT REACHED
385 return false;
386}

Callers

nothing calls this directly

Calls 1

read_frame_headMethod · 0.80

Tested by

no test coverage detected