main/task_http.c

branch
novnc
changeset 38
537ffe280775
parent 21
9e4cce24f6ff
child 41
7639cfa6aec0
equal deleted inserted replaced
37:1b82a6d50a39 38:537ffe280775
202 fclose(f); 202 fclose(f);
203 free(buff); 203 free(buff);
204 204
205 if (sentsize == filesize) { 205 if (sentsize == filesize) {
206 ESP_LOGI(TAG, "%s sendfile %s%s sent %u bytes, ok (%s)", ipstr, temp_url, (send_gz) ? ".gz":"", sentsize, url); 206 ESP_LOGI(TAG, "%s sendfile %s%s sent %u bytes, ok (%s)", ipstr, temp_url, (send_gz) ? ".gz":"", sentsize, url);
207 }
208 }
209
210
211
212 /**
213 * @brief Handle VNC websocket events.
214 */
215 void websockify_callback(uint8_t num, WEBSOCKET_TYPE_t type, char* msg, uint64_t len)
216 {
217 switch(type) {
218 case WEBSOCKET_DISCONNECT_EXTERNAL:
219 VncStopWS(num);
220 break;
221
222 case WEBSOCKET_DISCONNECT_INTERNAL:
223 ESP_LOGI(TAG,"Websockify client %i was disconnected",num);
224 VncStopWS(num);
225 break;
226
227 case WEBSOCKET_DISCONNECT_ERROR:
228 ESP_LOGI(TAG,"Websockify client %i was disconnected due to an error",num);
229 VncStopWS(num);
230 break;
231
232 case WEBSOCKET_BIN:
233 VncGetWSmessage(msg, len);
234 //dump_buf(msg, len);
235 break;
236
237 default: break;
238 } 207 }
239 } 208 }
240 209
241 210
242 211
417 netconn_delete(conn); 386 netconn_delete(conn);
418 netbuf_delete(inbuf); 387 netbuf_delete(inbuf);
419 return; 388 return;
420 } 389 }
421 390
422 // websocket for noVNC.
423 if ((strstr(buf,"GET /websockify ") && strstr(buf,"Upgrade: websocket"))) {
424 int nr = ws_server_add_client_protocol(conn, buf, buflen, "/websockify", "binary", websockify_callback);
425 ESP_LOGI(TAG, "%s new websocket on /websockify client: %d", ipstr, nr);
426 netbuf_delete(inbuf);
427 VncStartWS(nr);
428 return;
429 }
430
431 // websocket for web UI. 391 // websocket for web UI.
432 if ((strstr(buf,"GET /ws ") && strstr(buf,"Upgrade: websocket"))) { 392 if ((strstr(buf,"GET /ws ") && strstr(buf,"Upgrade: websocket"))) {
433 int nr = ws_server_add_client_protocol(conn, buf, buflen, "/ws", "binary", websock_callback); 393 int nr = ws_server_add_client_protocol(conn, buf, buflen, "/ws", "binary", websock_callback);
434 ESP_LOGI(TAG, "%s new websocket on /ws client: %d", ipstr, nr); 394 ESP_LOGI(TAG, "%s new websocket on /ws client: %d", ipstr, nr);
435 netbuf_delete(inbuf); 395 netbuf_delete(inbuf);

mercurial