2017-01-01 5 views
-1

У меня есть учебное пособие для сокета socket.io. Я хочу, чтобы быть в состоянии приглушить кого-то (уже не получить его чат) в чате, набрав /mute *person-name*, а затем снова включить его, набрав /unmute *person-name* и чат кто-то конкретный, набрав /whisper *person-name*Отключение, включение и прошивка кого-то в комнате чата в socket.io

Любые идеи о том, как сделать это?

ответ

0

Попробуйте

Для обработки немые используйте команду строковые операции, чтобы проверить, если первая буква сообщения является «/», и если есть «немой» в команде. Вам понадобится список пользователей для прокрутки, чтобы проверить, кто отключен.

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 
      } 
     }); 
+0

Спасибо, это помогло мне –

Смежные вопросы