Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Require the packages we will use:
- var http = require("http"),
- socketio = require("socket.io"),
- fs = require("fs");
- // Listen for HTTP connections. This is essentially a miniature static file server that only serves our one file, client.html:
- var app = http.createServer(function(req, resp){
- // This callback runs when a new connection is made to our HTTP server.
- fs.readFile("client2.html", function(err, data){
- // This callback runs when the client.html file has been read from the filesystem.
- if(err) return resp.writeHead(500);
- resp.writeHead(200);
- resp.end(data);
- });
- });
- app.listen(3456);
- var roomList = {
- rooms: [ {
- users: [],
- messages: [],
- name: "Home",
- owner: "",
- public: true,
- password: "",
- }]
- };
- var roomNames = ["Home"];
- var usersByRoom = {};
- function getRoomNumber(name) {
- for (i=0; i<roomNames.length; i++) {
- if (roomNames[i] == name) {
- return i;
- }
- }
- return 0;
- }
- // class room {
- // constructor(name, owner, password) {
- // this.name = name;
- // this.owner= owner;
- // this.password= password;
- // }};
- //parsedRooms.rooms.push(name: createdRoom, users: username, public: false);
- // username;
- // room;
- // Do the Socket.IO magic:
- var io = socketio.listen(app);
- io.sockets.on("connection", function(socket) {
- socket.on('addUser', function(username) {
- socket.username= username;
- socket.room= "Home";
- roomList.rooms[0].users.push(username);
- socket.join("Home");
- roomList.rooms[0].messages.push(username + " has joined room.");
- console.log(roomList);
- io.sockets.in("Home").emit("updateRooms", roomList, 0);
- //console.log(roomList.rooms[0].messages);
- });
- socket.on('message_to_server', function(data) {
- var index = getRoomNumber(socket.room);
- roomList.rooms[index].messages.push(socket.username + ": " + data["message"]);
- //console.log(roomList.rooms[index].messages);
- io.sockets.in(roomList.rooms[index].name).emit("updateRooms", roomList, index);
- //console.log(roomList.rooms[index].messages);
- console.log(index);
- });
- socket.on('create_room', function(data) {
- console.log("create_room called");
- console.log(data["owner"]);
- //console.log(type(data));
- var socketRoom= socket.room;
- socket.leave(socketRoom);
- var socketRoomNumber= getRoomNumber(socketRoom);
- for (var i=0; i<roomList.rooms[socketRoomNumber].users.length; i++) {
- if (roomList.rooms[socketRoomNumber].users[i]== socket.username) {
- roomList.rooms[socketRoomNumber].users.splice(i, i+1);
- }
- }
- roomList.rooms[socketRoomNumber].messages.push(socket.username + " has left room.");
- console.log(socketRoomNumber);
- var newRoomUsers =[];
- var newMessages= [];
- newRoomUsers.push(data["owner"]);
- newMessages.push(data["owner"] + " created the chat " + data["name"]);
- roomList.rooms.push({
- users: newRoomUsers,
- messages: newMessages,
- name: data["name"],
- owner: data["owner"],
- public: true,
- password: ""
- });
- console.log(roomList.rooms);
- socket.join(data["name"]);
- socket.room = data["name"];
- for (var i=0; i< roomList.rooms.length; i++) {
- io.sockets.in(roomList.rooms[i].name).emit("updateRooms", roomList, i);
- //console.log(roomList.rooms[i].messages);
- }
- //socket.emit('updateRooms', roomList, i)
- });
- //let rooms = Object.keys(roomList);
- // console.log(roomList); // [ <socket.id>, 'room 237' ]
- // io.to('createdRoom').emit('a new user has joined the room'); // broadcast to everyone in the room
- // });
- // socket.on('say to someone', (id, msg) => {
- // // send a private message to the socket with the given id
- // socket.broadcast.to(data.createdRoom).emit('conversation private post', {
- // message: data.message_input
- // });
- // });
- // socket.join('room', (data) => {
- // var NewRoom = data['room'];
- // var username= data["username"];
- // var currentRoom= data["currentRoom"];
- //
- // for (var i= 0; i < currentRoom.length; i++) {
- // if (currentRoom[i] == username ) {
- // currentRoom.splice(i, 1);
- // }
- // }
- // NewRoom.push(username);
- // let rooms = Object.keys(socket.rooms);
- // console.log(rooms); // [ <socket.id>, 'room 237' ]
- // io.to('room').emit('a new user has joined the room'); // broadcast to everyone in the room
- // });
- // socket.join('room', () => {
- // var newRoom = data['room'];
- // var username= data["username"];
- // var currentRoom= data["currentRoom"];
- //
- // for (var i= 0; i < currentRoom.length; i++) {
- // if (currentRoom[i] == username ) {
- // currentRoom.splice(i, 1);
- // }
- // }
- // NewRoom.push(username);
- // let rooms = Object.keys(socket.rooms);
- // console.log(rooms); // [ <socket.id>, 'room 237' ]
- // io.to('room').emit('a new user has joined the room'); // broadcast to everyone in the room
- // });
- //socket.join("public");
- // socket.on('username',function(data) {
- // var NewRoom = data['room'];
- // var username= data["username"];
- // var currentRoom= data["currentRoom"];
- //
- // // This callback runs when a new Socket.IO connection is established.
- // });
- // socket.on('updateRooms', roomList)
- socket.on('moveUser', function(user) {
- socket.join(data['name']);
- io.sockets.in((data['name'])).emit('moveUser')
- });
- // newRoom = data['room'];
- // username= data['username'];
- // currentRoom= data['createdroom'];
- //
- // room =
- // {
- // name: NewRoom,
- // owner: username,
- // public: data['public'],
- // password: data['password']
- // };
- // for (var i= 0; i < Object.keys(roomList).length; i++) {
- // if (roomList[i].username == username ) {
- // currentRoom.splice(i, 1);
- // }
- // }
- // roomList[room.users].push(username);
- // socket.on("moveUser", (roomList, callback) {
- // socket.join(roomList.room);
- // }
- // socket.on("moveUser", function(data) {
- // socket.join(roomList.room);
- // });
- // socket.on('addRoom', function(data) {
- // console.log(data)
- // room=
- // {
- // name: data['createdroom'],
- // owner: data['username'],
- // public: data['public'],
- // password: data['password']
- // };
- //
- // roomList[room.name]= room
- //
- //
- // });
- // });
- //console.log(roomList);
- //console.log("some test");
- // socket.on('moveUser', function(data) {
- // console.log('joining room', createdRoom);
- // socket.join("createdRoom");
- // });
- socket.on('send message', function(data) {
- console.log('sending room post');
- socket.broadcast.to("createdRoom").emit('conversation private post', {
- message: data.message_input
- });
- });
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement