index.html 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <!-- Required meta tags -->
  5. <meta charset="utf-8">
  6. <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
  7. <title>Inbox</title>
  8. <!-- Bootstrap CSS -->
  9. <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/css/bootstrap.min.css" integrity="sha384-/Y6pD6FV/Vv2HJnA6t+vslU6fwYXjCFtcEpHbNJ0lyAFsXTsjBbfaDjzALeQsN6M" crossorigin="anonymous">
  10. <style>
  11. .row { margin: 10px; border: 1px solid silver;}
  12. </style>
  13. </head>
  14. <body>
  15. <div class="container" id="">
  16. <h1>Messages</h1>
  17. </div>
  18. <div class="container" id="messages">
  19. <div class="row"></div>
  20. </div>
  21. <script>
  22. function newMessage(msg) {
  23. // msg = {email: "vasily@mail.ru", subject: "testing testing", name: "rvasily"}
  24. // dont do this!
  25. // completly insecure to XSS
  26. msgNode = '<div class="col-sm">'+msg.name+' &laquo;'+msg.email+'&raquo;</div>'
  27. + '<div class="col-sm">'+msg.subject+'</div>';
  28. var node = document.createElement("div");
  29. node.className = "row";
  30. node.innerHTML = msgNode;
  31. msgs = document.getElementById("messages")
  32. msgs.insertBefore(node, msgs.childNodes[0]);
  33. }
  34. conn = new WebSocket("ws://127.0.0.1:8080/notifications");
  35. conn.onmessage = function (event) {
  36. newMessage(JSON.parse(event.data));
  37. };
  38. </script>
  39. </body>
  40. </html>