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

Method doMsg

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

Source from the content-addressed store, hash-verified

110}
111
112bool http_servlet::doMsg(acl::websocket& in, acl::websocket& out)
113{
114 unsigned long long len = in.get_frame_payload_len();
115 out.reset().set_frame_fin(true)
116 .set_frame_opcode(acl::FRAME_TEXT)
117 .set_frame_payload_len(len);
118
119 char buf[8192];
120 while (true) {
121 int ret = in.read_frame_data(buf, sizeof(buf) - 1);
122 if (ret == 0)
123 break;
124 if (ret < 0) {
125 printf("read_frame_data error\r\n");
126 return false;
127 }
128
129 buf[ret] = 0;
130 printf("read: [%s]\r\n", buf);
131 if (out.send_frame_data(buf, ret) == false) {
132 printf("send_frame_data error\r\n");
133 return false;
134 }
135 }
136
137#if 1
138 if (!sendBannder(out)) {
139 return false;
140 }
141#endif
142
143 sleep(1);
144 char info[256];
145 snprintf(info, sizeof(info), "hello world!\r\n");
146 out.reset().set_frame_fin(true)
147 .set_frame_opcode(acl::FRAME_TEXT)
148 .set_frame_payload_len(strlen(info));
149 if (out.send_frame_data(info, strlen(info)) == false) {
150 printf("send_frame_data error\r\n");
151 return false;
152 }
153
154 sleep(1);
155 snprintf(info, sizeof(info), "hello zsx!\r\n");
156 out.reset().set_frame_fin(true)
157 .set_frame_opcode(acl::FRAME_TEXT)
158 .set_frame_payload_len(strlen(info));
159 if (out.send_frame_data(info, strlen(info)) == false) {
160 printf("send_frame_data error\r\n");
161 return false;
162 }
163
164 sleep(1);
165 snprintf(info, sizeof(info), "GoodBye!\r\n");
166 out.reset().set_frame_fin(true)
167 .set_frame_opcode(acl::FRAME_TEXT)
168 .set_frame_payload_len(strlen(info));
169 if (out.send_frame_data(info, strlen(info)) == false) {

Callers

nothing calls this directly

Calls 4

read_frame_dataMethod · 0.80
send_frame_dataMethod · 0.80
sleepFunction · 0.50
resetMethod · 0.45

Tested by

no test coverage detected