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

Method doPing

lib_acl_cpp/samples/websocket/demo/http_servlet.cpp:53–82  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

51}
52
53bool http_servlet::doPing(acl::websocket& in, acl::websocket& out)
54{
55 unsigned long long len = in.get_frame_payload_len();
56 if (len == 0)
57 return out.send_frame_pong((const void*) NULL, 0);
58
59 out.reset().set_frame_fin(true)
60 .set_frame_opcode(acl::FRAME_PONG)
61 .set_frame_payload_len(len);
62
63 char buf[8192];
64 while (true) {
65 int ret = in.read_frame_data(buf, sizeof(buf) - 1);
66 if (ret == 0)
67 break;
68 if (ret < 0) {
69 printf("read_frame_data error\r\n");
70 return false;
71 }
72
73 buf[ret] = 0;
74 printf("read: [%s]\r\n", buf);
75 if (out.send_frame_data(buf, ret) == false) {
76 printf("send_frame_data error\r\n");
77 return false;
78 }
79 }
80
81 return true;
82}
83
84bool http_servlet::doPong(acl::websocket& in, acl::websocket&)
85{

Callers

nothing calls this directly

Calls 4

send_frame_pongMethod · 0.80
read_frame_dataMethod · 0.80
send_frame_dataMethod · 0.80
resetMethod · 0.45

Tested by

no test coverage detected