Advertisement
Guest User

Untitled

a guest
Nov 13th, 2018
236
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.70 KB | None | 0 0
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <script src="http://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js" type="text/javascript"></script>
  5. <link rel="stylesheet" href="client.css">
  6. <script src="/socket.io/socket.io.js"></script>
  7.  
  8. <script type ="text/javascript">
  9.  
  10.  
  11. // class room {
  12. // constructor(name, owner, password) {
  13. // this.name = name;
  14. // this.owner= owner;
  15. // this.password= password;
  16. // }};
  17. var roomList = {
  18. rooms: [ {
  19. users: [],
  20. messages: [],
  21. name: "Home",
  22. owner: "",
  23. public: true,
  24. password: "",
  25. }]
  26. };
  27. var publicChatRooms = [];
  28. var privateChatRooms = {};
  29. var username = "";
  30. var newRoom = "";
  31. var currentRoom= "";
  32.  
  33.  
  34. var socketio = io.connect();
  35. socketio.on("connect", function(data) {
  36. username = prompt("Enter Username");
  37. currentRoom = "Home";
  38. socketio.emit("addUser", username);
  39. });
  40. socketio.on("message_to_client",function(data) {
  41. //Append an HR thematic break and the escaped HTML of the new message
  42. document.getElementById("chatlog").appendChild(document.createElement("hr"));
  43. document.getElementById("chatlog").appendChild(document.createTextNode(data['username']+": "+data['message']));
  44. });
  45. socketio.on("username",function(data) {
  46. document.getElementById("username").appendChild(document.createTextNode(data['username']));
  47. console.log(data['username']);
  48. });
  49. socketio.on("addRoom", function(data) {
  50. //document.getElementById("rooms").appendChild(document.createTextNode(data['name']));
  51. var button = document.createElement("input");
  52. button.type= "button";
  53. button.value= data["name"];
  54. button.setAttribute("id", data["name"]);
  55. // button.addEventListener = "moveUserToRoom()"
  56. document.getElementById("rooms").hidden = false;
  57. document.getElementById("rooms").appendChild(button)
  58.  
  59.  
  60. });
  61. socketio.on('updateRooms', function(roomArray, roomNumber) {
  62. console.log("updating rooms");
  63. roomList = roomArray;
  64. var roomButtons = '';
  65. var roomName= roomList.rooms[i].name;
  66. for (let i=0; i<roomList.rooms.length; i++) {
  67. roomButtons += '<div><button>'+roomList.rooms[i].name+'</button></div>';
  68. }
  69. document.getElementById("rooms").innerHTML= roomButtons;
  70.  
  71. document.getElementById("chatlog").innerHTML= roomName;
  72.  
  73. for (var i=0; i<roomList.rooms[roomNumber].messages.length; i++) {
  74. var p= document.createElement("p")
  75. var text= document.createTextNode(roomList.rooms[roomNumber].messages[i]);
  76. p.appendChild(text);
  77. document.getElementById("chatlog").appendChild(p);
  78. console.log(roomList.rooms[roomNumber].messages[i])
  79. //console.log(roomList.rooms[0].messages);
  80. }
  81. });
  82. socketio.on('moveUser', function(data) {
  83. console.log('joining room', createdRoom);
  84. socket.join("createdRoom");
  85. });
  86.  
  87. function sendMessage(){
  88. var msg = document.getElementById("message_input").value;
  89. //var username= document.getElementById("username").value;
  90. socketio.emit("message_to_server", {message:msg, username:username});
  91. document.getElementById("message_input").value = "";
  92. }
  93. function createRoom(){
  94. var room = document.getElementById("createdroom").value;
  95. socketio.emit("create_room", {name:room, owner:username});
  96. document.getElementById("message_input").value="";
  97. }
  98.  
  99. function enterUsername(){
  100. username= document.getElementById("username").value;
  101. socketio.emit("username", {username:username});
  102. //socketio.emit("username", {username:username} + "has entered the room" );
  103. document.getElementById("createroom").hidden= false;
  104. document.getElementById("rooms").hidden=false;
  105. currentRoom = "public";
  106.  
  107. document.getElementById("rooms").hidden = false;
  108. }
  109.  
  110. function moveUserToRoom(){
  111. document.getElementById("message").hidden=false;
  112. document.getElementById("chatlog").hidden=false;
  113.  
  114. };
  115.  
  116. function createPrivateRoom(){
  117. createdRoom= document.getElementById("createdroom").value;
  118. password = document.getElementById("password").value;
  119. roomList.push({name:createdRoom, owner:username, public: false, password:password});
  120. socketio.emit("addRoom_server", {name:createdRoom, owner:username, public: false, password:prompt("Enter password:")});
  121. document.getElementById("message").hidden=false;
  122. document.getElementById("chatlog").hidden=false;
  123. console.log(createdRoom);
  124. console.log("");
  125. let roomDiv= document.createElement("div");
  126. for (let i=0; i<roomList.length; i++) {
  127. document.getElementById("rooms").appendChild(roomDiv)
  128. }
  129. console.log(roomList);
  130. console.log(createdRoom);
  131. console.log("addRoom_server");
  132. console.log();
  133.  
  134. }
  135. function createPublicRoom(){
  136. var createdRoom= document.getElementById("createdroom").value;
  137. document.getElementById("message").hidden=false;
  138. document.getElementById("chatlog").hidden=false;
  139. //parsedRooms.rooms.push({"name":createdRoom, "users":[], "public": true});
  140. socketio.emit("addRoom_server", {name:createdRoom, owner:username, public: true, password: ""});
  141. console.log(roomList);
  142. console.log(createdRoom);
  143. console.log();
  144.  
  145. var linebr = document.createElement('br');
  146. var roomButton = document.createElement('button');
  147. var text = document.createTextNode(createdRoom);
  148. roomButton.appendChild(text);
  149. document.getElementById("rooms").appendChild(roomButton);
  150. document.getElementById("rooms").appendChild(linebr);
  151. let roomDiv= document.createElement("div");
  152. for (let i=0; i<roomList.length; i++) {
  153. document.getElementById("rooms").appendChild(roomDiv)
  154. }
  155.  
  156. }
  157. function displayRoom(){
  158.  
  159. }
  160.  
  161.  
  162.  
  163.  
  164. </script>
  165.  
  166. </head>
  167. <body>
  168. <div class="container">
  169. <div id = "sidebar"> <!-- sidebar for list of usernames for private chat -->
  170. <p>test hello</p>
  171. </div> <!-- end username sidebar -->
  172. <div id = "createroom">
  173. <label>Create Room <input type = "text" id = "createdroom" /></label>
  174. <!--<label>Create Password for Room (Optional) <input type ="text" id = "password" /></label>
  175. <button onclick= "createPrivateRoom()">Make Private Room</button></br>-->
  176. <button onclick= "createRoom()">Make Public Room</button></br>
  177. </div>
  178. <div id = "message">
  179. <input type="text" id="message_input"/>
  180. <button onclick="sendMessage()">send</button></br>
  181. </div>
  182.  
  183. <!-- <div hidden id= "rooms"> -->
  184. <label>Click these buttons to join each room</label>
  185. <div id= "rooms">
  186. <!-- <label>Join a Room: <input type = "text" id = "room" /></label> -->
  187. <br/>
  188.  
  189. </div>
  190. <div id="createdRooms" > </div>
  191. <div id="chatlog"></div>
  192. </div>
  193. </body>
  194. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement