index.html 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  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. }
  66. else {
  67. $('#status').html("Unknown Message recieved");
  68. }
  69. }
  70. });
  71. </script>
  72. </head>
  73. <body>
  74. <form id="loginform">
  75. <label for="gameId">Game ID:</label>
  76. <input id="gameId" type="text" /><br>
  77. <label for="nick">Nickname:</label>
  78. <input id="nick" type="text" /><br>
  79. <input id="join" type="button" value="Join" />
  80. <input id="create" type="button" value="Create Game" />
  81. </form>
  82. <div id="status">
  83. </div>
  84. </body>
  85. </html>