index.html 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8"/>
  5. <title>Websocket client</title>
  6. </head>
  7. <body>
  8. <header>
  9. <h1>Websocket client</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 type="text/javascript">
  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 + "/websocket";
  35. connected.style.display = "none";
  36. content.style.display = "none";
  37. function connect()
  38. {
  39. wsHost = server.value;
  40. websocket = new WebSocket(wsHost);
  41. showScreen('<b>Connecting to: ' + wsHost + '</b>');
  42. websocket.onopen = function(evt) { onOpen(evt) };
  43. websocket.onclose = function(evt) { onClose(evt) };
  44. websocket.onmessage = function(evt) { onMessage(evt) };
  45. websocket.onerror = function(evt) { onError(evt) };
  46. };
  47. function disconnect() {
  48. websocket.close();
  49. };
  50. function toggle_connection(){
  51. if (websocket && websocket.readyState == websocket.OPEN) {
  52. disconnect();
  53. } else {
  54. connect();
  55. };
  56. };
  57. function sendTxt() {
  58. if (websocket.readyState == websocket.OPEN) {
  59. var msg = message.value;
  60. websocket.send(msg);
  61. showScreen('sending: ' + msg);
  62. } else {
  63. showScreen('websocket is not connected');
  64. };
  65. };
  66. function onOpen(evt) {
  67. showScreen('<span style="color: green;">CONNECTED </span>');
  68. connecting.style.display = "none";
  69. connected.style.display = "";
  70. content.style.display = "";
  71. };
  72. function onClose(evt) {
  73. showScreen('<span style="color: red;">DISCONNECTED</span>');
  74. };
  75. function onMessage(evt) {
  76. showScreen('<span style="color: blue;">RESPONSE: ' + evt.data + '</span>');
  77. };
  78. function onError(evt) {
  79. showScreen('<span style="color: red;">ERROR: ' + evt.data + '</span>');
  80. };
  81. function showScreen(html) {
  82. var el = document.createElement("p");
  83. el.innerHTML = html;
  84. output.insertBefore(el, output.firstChild);
  85. };
  86. function clearScreen() {
  87. output.innerHTML = "";
  88. };
  89. </script>
  90. </body>
  91. </html>