Advertisement
Guest User

Untitled

a guest
Nov 13th, 2018
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.53 KB | None | 0 0
  1. // Require the packages we will use:
  2. var http = require("http"),
  3. socketio = require("socket.io"),
  4. fs = require("fs");
  5.  
  6.  
  7. // Listen for HTTP connections. This is essentially a miniature static file server that only serves our one file, client.html:
  8. var app = http.createServer(function(req, resp){
  9. // This callback runs when a new connection is made to our HTTP server.
  10.  
  11. fs.readFile("client2.html", function(err, data){
  12. // This callback runs when the client.html file has been read from the filesystem.
  13.  
  14. if(err) return resp.writeHead(500);
  15. resp.writeHead(200);
  16. resp.end(data);
  17. });
  18. });
  19. app.listen(3456);
  20.  
  21.  
  22.  
  23. var roomList = {
  24. rooms: [ {
  25. users: [],
  26. messages: [],
  27. name: "Home",
  28. owner: "",
  29. public: true,
  30. password: "",
  31. }]
  32. };
  33.  
  34.  
  35. var roomNames = ["Home"];
  36. var usersByRoom = {};
  37. function getRoomNumber(name) {
  38. for (i=0; i<roomNames.length; i++) {
  39. if (roomNames[i] == name) {
  40. return i;
  41. }
  42. }
  43. return 0;
  44. }
  45. // class room {
  46. // constructor(name, owner, password) {
  47. // this.name = name;
  48. // this.owner= owner;
  49. // this.password= password;
  50. // }};
  51.  
  52. //parsedRooms.rooms.push(name: createdRoom, users: username, public: false);
  53. // username;
  54. // room;
  55.  
  56.  
  57. // Do the Socket.IO magic:
  58. var io = socketio.listen(app);
  59.  
  60.  
  61. io.sockets.on("connection", function(socket) {
  62. socket.on('addUser', function(username) {
  63. socket.username= username;
  64. socket.room= "Home";
  65. roomList.rooms[0].users.push(username);
  66. socket.join("Home");
  67. roomList.rooms[0].messages.push(username + " has joined room.");
  68. console.log(roomList);
  69. io.sockets.in("Home").emit("updateRooms", roomList, 0);
  70. //console.log(roomList.rooms[0].messages);
  71.  
  72. });
  73. socket.on('message_to_server', function(data) {
  74. var index = getRoomNumber(socket.room);
  75. roomList.rooms[index].messages.push(socket.username + ": " + data["message"]);
  76. //console.log(roomList.rooms[index].messages);
  77. io.sockets.in(roomList.rooms[index].name).emit("updateRooms", roomList, index);
  78. //console.log(roomList.rooms[index].messages);
  79. console.log(index);
  80. });
  81.  
  82. socket.on('create_room', function(data) {
  83. console.log("create_room called");
  84. console.log(data["owner"]);
  85. //console.log(type(data));
  86.  
  87. var socketRoom= socket.room;
  88. socket.leave(socketRoom);
  89. var socketRoomNumber= getRoomNumber(socketRoom);
  90. for (var i=0; i<roomList.rooms[socketRoomNumber].users.length; i++) {
  91. if (roomList.rooms[socketRoomNumber].users[i]== socket.username) {
  92. roomList.rooms[socketRoomNumber].users.splice(i, i+1);
  93. }
  94. }
  95. roomList.rooms[socketRoomNumber].messages.push(socket.username + " has left room.");
  96.  
  97. console.log(socketRoomNumber);
  98.  
  99. var newRoomUsers =[];
  100. var newMessages= [];
  101. newRoomUsers.push(data["owner"]);
  102. newMessages.push(data["owner"] + " created the chat " + data["name"]);
  103.  
  104. roomList.rooms.push({
  105. users: newRoomUsers,
  106. messages: newMessages,
  107. name: data["name"],
  108. owner: data["owner"],
  109. public: true,
  110. password: ""
  111. });
  112.  
  113. console.log(roomList.rooms);
  114. socket.join(data["name"]);
  115. socket.room = data["name"];
  116. for (var i=0; i< roomList.rooms.length; i++) {
  117. io.sockets.in(roomList.rooms[i].name).emit("updateRooms", roomList, i);
  118. //console.log(roomList.rooms[i].messages);
  119. }
  120. //socket.emit('updateRooms', roomList, i)
  121. });
  122. //let rooms = Object.keys(roomList);
  123. // console.log(roomList); // [ <socket.id>, 'room 237' ]
  124. // io.to('createdRoom').emit('a new user has joined the room'); // broadcast to everyone in the room
  125. // });
  126. // socket.on('say to someone', (id, msg) => {
  127. // // send a private message to the socket with the given id
  128. // socket.broadcast.to(data.createdRoom).emit('conversation private post', {
  129. // message: data.message_input
  130. // });
  131. // });
  132.  
  133. // socket.join('room', (data) => {
  134. // var NewRoom = data['room'];
  135. // var username= data["username"];
  136. // var currentRoom= data["currentRoom"];
  137. //
  138. // for (var i= 0; i < currentRoom.length; i++) {
  139. // if (currentRoom[i] == username ) {
  140. // currentRoom.splice(i, 1);
  141. // }
  142. // }
  143. // NewRoom.push(username);
  144. // let rooms = Object.keys(socket.rooms);
  145. // console.log(rooms); // [ <socket.id>, 'room 237' ]
  146. // io.to('room').emit('a new user has joined the room'); // broadcast to everyone in the room
  147. // });
  148. // socket.join('room', () => {
  149. // var newRoom = data['room'];
  150. // var username= data["username"];
  151. // var currentRoom= data["currentRoom"];
  152. //
  153. // for (var i= 0; i < currentRoom.length; i++) {
  154. // if (currentRoom[i] == username ) {
  155. // currentRoom.splice(i, 1);
  156. // }
  157. // }
  158. // NewRoom.push(username);
  159. // let rooms = Object.keys(socket.rooms);
  160. // console.log(rooms); // [ <socket.id>, 'room 237' ]
  161. // io.to('room').emit('a new user has joined the room'); // broadcast to everyone in the room
  162. // });
  163.  
  164.  
  165. //socket.join("public");
  166. // socket.on('username',function(data) {
  167. // var NewRoom = data['room'];
  168. // var username= data["username"];
  169. // var currentRoom= data["currentRoom"];
  170. //
  171. // // This callback runs when a new Socket.IO connection is established.
  172. // });
  173. // socket.on('updateRooms', roomList)
  174. socket.on('moveUser', function(user) {
  175.  
  176. socket.join(data['name']);
  177. io.sockets.in((data['name'])).emit('moveUser')
  178. });
  179.  
  180.  
  181.  
  182. // newRoom = data['room'];
  183. // username= data['username'];
  184. // currentRoom= data['createdroom'];
  185. //
  186. // room =
  187. // {
  188. // name: NewRoom,
  189. // owner: username,
  190. // public: data['public'],
  191. // password: data['password']
  192. // };
  193. // for (var i= 0; i < Object.keys(roomList).length; i++) {
  194. // if (roomList[i].username == username ) {
  195. // currentRoom.splice(i, 1);
  196. // }
  197. // }
  198. // roomList[room.users].push(username);
  199.  
  200. // socket.on("moveUser", (roomList, callback) {
  201. // socket.join(roomList.room);
  202. // }
  203. // socket.on("moveUser", function(data) {
  204. // socket.join(roomList.room);
  205. // });
  206.  
  207. // socket.on('addRoom', function(data) {
  208. // console.log(data)
  209. // room=
  210. // {
  211. // name: data['createdroom'],
  212. // owner: data['username'],
  213. // public: data['public'],
  214. // password: data['password']
  215. // };
  216. //
  217. // roomList[room.name]= room
  218. //
  219. //
  220. // });
  221.  
  222. // });
  223.  
  224. //console.log(roomList);
  225. //console.log("some test");
  226.  
  227.  
  228. // socket.on('moveUser', function(data) {
  229. // console.log('joining room', createdRoom);
  230. // socket.join("createdRoom");
  231. // });
  232.  
  233. socket.on('send message', function(data) {
  234. console.log('sending room post');
  235. socket.broadcast.to("createdRoom").emit('conversation private post', {
  236. message: data.message_input
  237. });
  238. });
  239. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement