Групповой чат Socket.io с использованием узла и angular - PullRequest
0 голосов
/ 28 апреля 2020

Как создать групповой чат, используя socket.io. ?? В моем приложении есть пользователи, и они также могут зарегистрироваться, а ниже вы можете увидеть чат один на один, как создать группу и добавить в нее пользователей, чтобы помочь мне

Где мой код чата один на один показано ниже.

io.on("connection", socket => {
    let userId = parseInt(socket.handshake.query.userId);
    // console.log("New connection was made:", socket.id);

    // attach incoming listener for new user
    socket.on("user_connected", (email) => {
        // console.log(email);
        // an array to find the no. of users currently online
        onlineUsers.push(userId);

        // save in users object
        users[email] = socket.id;

        // socket ID will be used to send message to individual person

        // notify all connected clients
        io.emit("online_users", onlineUsers);        
    });

    socket.on("send_message", (data) => {
        // console.log(data);
        let creationDate = new Date();

        con.query("INSERT INTO chat_messages (sender, receiver, message, sent_on) VALUES(?, ?, ?, ?)", [data.sender, data.receiver, data.message, creationDate], (error, results) => {
            if(!error) {
                let socketId = users[data.receiver];

                // send message to receiver
                io.to(socketId).emit("new_message", data);
            } else {
                console.log('DB connection failed \n Error' + JSON.stringify(error, undefined, 2));
            }
        });
    });

    socket.on("disconnect", () => {
        con.query("SELECT email FROM register WHERE id = ?", [userId], (error, row) => {
            if(!error) {
                // To remove the user id of disconnected user
                onlineUsers.splice(onlineUsers.indexOf(userId), 1);

                // To remove the socket id of the disconnected user
                delete users[row[0].email];

                // notify all connected clients
                io.emit("online_users", onlineUsers);
            } else{
                console.log('DB connection failed \n Error' + JSON.stringify(error, undefined, 2));
            }
        });
    });
});

выше приведен мой код на стороне сервера. помогите создать групповой чат

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...