index.html 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. <!DOCTYPE html>
  2. <meta charset="utf-8" />
  3. <html>
  4. <head>
  5. <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
  6. <script language="javascript" type="text/javascript">
  7. $(function() {
  8. var connection = null;
  9. $('#join').click(function() {
  10. var game_id = $('#gameId').val();
  11. var nick = $('#nick').val();
  12. var msg = {
  13. join: {
  14. game_id: game_id,
  15. nick: nick,
  16. }
  17. };
  18. connect(msg);
  19. });
  20. $('#create').click(function() {
  21. var game_id = $('#gameId').val();
  22. var nick = $('#nick').val();
  23. var msg = {
  24. create_game: {
  25. game_id: game_id,
  26. nick: nick,
  27. }
  28. };
  29. connect(msg);
  30. });
  31. function connect(initial_message) {
  32. if (connection != null) {
  33. disconnect();
  34. }
  35. var uri = 'ws://' + window.location.host + '/ws/';
  36. connection = new WebSocket(uri);
  37. connection.onopen = function() {
  38. connection.send(JSON.stringify(initial_message));
  39. };
  40. connection.onmessage = function(e) {
  41. onReceive(e);
  42. };
  43. connection.onclose = function() {
  44. connection = null;
  45. };
  46. }
  47. function disconnect() {
  48. connection.close();
  49. connection = null;
  50. }
  51. function onReceive(msg) {
  52. var obj = jQuery.parseJSON(msg.data);
  53. if (obj.game_not_found != null) {
  54. $('#status').html("Game \"" + obj.game_not_found.game_id + "\" not found");
  55. }
  56. else if (obj.game_already_exists != null) {
  57. $('#status').html("Game \"" + obj.game_already_exists.game_id + "\" already exists");
  58. }
  59. else if (obj.game_state != null) {
  60. playerlist = "";
  61. for (var i = 0; i < obj.game_state.players.length; i++) {
  62. playerlist = playerlist + ", " + obj.game_state.players[i];
  63. }
  64. $('#status').html("Players: " + playerlist);
  65. $('#createform').toggle();
  66. }
  67. else {
  68. $('#status').html("Unknown Message recieved");
  69. }
  70. }
  71. });
  72. </script>
  73. </head>
  74. <body>
  75. <form id="loginform">
  76. <label for="gameId">Game ID:</label>
  77. <input id="gameId" type="text" /><br>
  78. <label for="nick">Nickname:</label>
  79. <input id="nick" type="text" /><br>
  80. <input id="join" type="button" value="Join" />
  81. <input id="create" type="button" value="Create Game" />
  82. </form>
  83. <form id="createform" style="display:none">
  84. <label for="word">Game ID:</label>
  85. <input id="word" type="text" /><br>
  86. <input id="submit" type="button" value="Submit Word" />
  87. </form>
  88. <div id="status">
  89. </div>
  90. </body>
  91. </html>