html_console_ws.h 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. /* clang-format off */
  2. #ifdef ENABLE_FEATURE_WEB_CONSOLE_WEBSOCKETS
  3. static const char js_wsapp[] PROGMEM = R"=====(var cmd = document.getElementById('cmd');
  4. var listMsgs = document.getElementById('msgs');
  5. var socketStatus = document.getElementById('status');
  6. var btnClose = document.getElementById('btnClose');
  7. var wsUrl = 'ws://' + window.location.hostname + ':81';
  8. var socket = new WebSocket(wsUrl);
  9. socket.onopen = function(event) {
  10. //socketStatus.innerHTML = 'Connected to: ' + event.currentTarget.URL;
  11. socketStatus.innerHTML = 'Connected';
  12. socketStatus.className = 'open';
  13. };
  14. socket.onerror = function(error) {
  15. console.log('WebSocket error: ' + error);
  16. };
  17. socket.onmessage = function(event) {
  18. var msg = event.data;
  19. listMsgs.innerHTML += msg;
  20. listMsgs.scrollTop = listMsgs.scrollHeight;
  21. };
  22. socket.onclose = function(event) {
  23. socketStatus.innerHTML = 'Disconnected';
  24. socketStatus.className = 'closed';
  25. };
  26. function sendCmd() {
  27. socket.send(cmd.value);
  28. listMsgs.innerHTML += 'Sent: ' + cmd.value + '\n';
  29. cmd.value = '';
  30. return false;
  31. }
  32. function togConn() {
  33. if(socketStatus.className=='open') { socket.close(); btnClose.innerHTML='Reload'; }
  34. else location.reload();
  35. }
  36. document.getElementById("cmd")
  37. .addEventListener("keyup", function(event) {
  38. event.preventDefault();
  39. if (event.keyCode === 13) {
  40. document.getElementById("btnSend").click();
  41. }
  42. });
  43. )====="; // js_wsapp
  44. static const char html_wsconsole_body[] PROGMEM = R"=====(
  45. <p><b>Console</b></p>
  46. <div id="status">Connecting...</div>
  47. <table style='width:100%'>
  48. <tr><td style='width:800px'><textarea id='msgs'></textarea></td></tr>
  49. <tr><td style='width:100%'><input id='cmd' type='text'></td></tr>
  50. <tr><td style='width:100%'><button type='submit' id='btnSend' onclick='sendCmd();'>Send</button></td></tr>
  51. <tr><td style='width:100%'><button type='button' id='btnClose' onclick='togConn();'>Disconnect</button></td></tr>
  52. <tr><td style='width:100%'><form action='.' method='get'><button class='bgrey'>Main Menu</button></form></td></tr>
  53. </table>
  54. <script src="wsapp.js"></script>
  55. )====="; // html_wsconsole_body
  56. #endif