index.html 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <title>Websocket test</title>
  6. </head>
  7. <body>
  8. <header>
  9. <h1>Websocket test</h1>
  10. <div id="status"></div>
  11. </header>
  12. <nav>
  13. <div id="connecting">
  14. <input type="text" id="server" value=""></input>
  15. <button type="button" onclick="toggle_connection()">connection</button>
  16. </div>
  17. <div id="connected">
  18. <input type="text" id="message" value=""></input>
  19. <button type="button" onclick="sendTxt()">send</button>
  20. </div>
  21. </nav>
  22. <main id="content">
  23. <button id="clear" onclick="clearScreen()" >Clear text</button>
  24. <div id="output"></div>
  25. </main>
  26. <script>
  27. var websocket;
  28. var server = document.getElementById('server');
  29. var message = document.getElementById('message');
  30. var connecting = document.getElementById('connecting');
  31. var connected = document.getElementById('connected');
  32. var content = document.getElementById('content');
  33. var output = document.getElementById('output');
  34. server.value = 'ws://' + window.location.host + '/ws';
  35. connected.style.display = 'none';
  36. content.style.display = 'none';
  37. function connect(){
  38. wsHost = server.value;
  39. websocket = new WebSocket(wsHost);
  40. showScreen('<b>Connecting to: ' + wsHost + '</b>');
  41. websocket.onopen = function(evt){ onOpen(evt) };
  42. websocket.onclose = function(evt){ onClose(evt) };
  43. websocket.onmessage = function(evt){ onMessage(evt) };
  44. websocket.onerror = function(evt){ onError(evt) };
  45. }
  46. function disconnect(){
  47. websocket.close();
  48. }
  49. function toggle_connection(){
  50. if(websocket && websocket.readyState == websocket.OPEN){
  51. disconnect();
  52. }else{
  53. connect();
  54. }
  55. }
  56. function sendTxt(){
  57. if(websocket.readyState == websocket.OPEN){
  58. var msg = message.value;
  59. websocket.send(msg);
  60. showScreen('sending: ' + msg);
  61. }else{
  62. showScreen('websocket is not connected');
  63. }
  64. }
  65. function onOpen(evt){
  66. showScreen('<span style="color:green">CONNECTED </span>');
  67. connecting.style.display = 'none';
  68. connected.style.display = '';
  69. content.style.display = '';
  70. }
  71. function onClose(evt){
  72. showScreen('<span style="color:red">DISCONNECTED</span>');
  73. }
  74. function onMessage(evt){
  75. showScreen('<span style="color:blue">RESPONSE: ' + evt.data + '</span>');
  76. }
  77. function onError(evt){
  78. showScreen('<span style="color:red">ERROR: ' + evt.data + '</span>');
  79. }
  80. function showScreen(html){
  81. var el = document.createElement('p');
  82. el.innerHTML = html;
  83. output.insertBefore(el, output.firstChild);
  84. }
  85. function clearScreen(){
  86. output.innerHTML = '';
  87. }
  88. </script>
  89. </body>
  90. </html>