【问题标题】:Muting, unmuting and whispering someone in a chat room in socket.io在 socket.io 的聊天室中对某人静音、取消静音和耳语
【发布时间】:2017-01-01 12:32:42
【问题描述】:

我已经完成了socket.io聊天室的教程。我希望能够通过输入 /mute *person-name* 在聊天室中将某人静音(不再接收他的聊天),然后通过输入 /unmute *person-name* 取消静音并通过输入 /whisper *person-name* 与特定的人聊天

关于如何做到这一点的任何想法?

【问题讨论】:

    标签: socket.io chat


    【解决方案1】:

    试试这个

    要处理静音命令,使用字符串操作来检查消息的第一个字母是否是“/”,以及命令中是否有“静音”。您将需要一个用户列表来循环查看谁被静音。

    socket.on('chat message', function(msg) {
                if(msg.charAt(0) == "/") {
                    //Process command
    
                    command = msg.substring(1, msg.length);
    
                    //unmute
                    if (command.includes("unmute")) {
                        for (var i = 0; i < your_user_list.length; i++) {
                            if (command.includes(your_user_list[i].username)) {
                                your_user_list[i].muted = false;
                            }
                        }
                    } //mute
                    else if (command.includes("mute")) {
                        for (var i = 0; i < your_user_list.length; i++) {
                            if (command.includes(your_user_list[i].username)) {
                                your_user_list[i].muted = true;
                            }
                        }
                    }
                }
                else {
                    //Send message
                    console.log(socket.username + ": " + msg);
                    io.emit('chat message', socket.username + ": " + msg);
                }
            });
    

    要使某人静音,请向套接字添加成员变量

    socket.muted = true;
    

    然后检查用户是否被静音,每次他们提交这样的消息。

    socket.on('chat message', function(msg) {
                if(!socket.muted) {
                    //Allow the user to chat
    
                    if(msg.charAt(0) == "/") {
                        //Process command
    
                        command = msg.substring(1, msg.length);
    
                        //unmute
                        if (command.includes("unmute")) {
                            for (var i = 0; i < your_user_list.length; i++) {
                                if (command.includes(your_user_list[i].username)) {
                                    your_user_list[i].muted = false;
                                }
                            }
                        } //mute
                        else if (command.includes("mute")) {
                            for (var i = 0; i < your_user_list.length; i++) {
                                if (command.includes(your_user_list[i].username)) {
                                    your_user_list[i].muted = true;
                                }
                            }
                        }
                    }
                    else {
                        //Send message
                        console.log(socket.username + ": " + msg);
                        io.emit('chat message', socket.username + ": " + msg);
                    }
                }
                else {
                    //Tell them they are muted
                }
            });
    

    【讨论】:

    • 谢谢,这对我有帮助
    猜你喜欢
    • 2022-10-21
    • 2016-03-31
    • 2021-01-02
    • 1970-01-01
    • 1970-01-01
    • 2021-01-10
    • 2018-01-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多