| 110 | } |
| 111 | |
| 112 | bool 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) { |
nothing calls this directly
no test coverage detected