]> Sergey Matveev's repositories - vors.git/blobdiff - cmd/server/main.go
Notification about peer mute toggling
[vors.git] / cmd / server / main.go
index 7208476080569cd7e2c13dcd153b020a427f635fb681dd2e21f38c91218613d8..9ede9f61c29b3f27937506d7154b31c8315d267d9a4b8f97f575bf85fa70fbd4 100644 (file)
@@ -306,10 +306,28 @@ func newPeer(conn *net.TCPConn) {
                        logger.Error("empty args")
                        break
                }
+               seen = time.Now()
                switch cmd := string(args[0]); cmd {
                case vors.CmdPing:
-                       seen = time.Now()
                        peer.tx <- vors.ArgsEncode([]byte(vors.CmdPong))
+               case vors.CmdMuted:
+                       peer.muted = true
+                       s := vors.ArgsEncode([]byte(vors.CmdMuted), []byte{peer.sid})
+                       for _, p := range room.peers {
+                               if p.sid == peer.sid {
+                                       continue
+                               }
+                               go func(tx chan []byte) { tx <- s }(p.tx)
+                       }
+               case vors.CmdUnmuted:
+                       peer.muted = false
+                       s := vors.ArgsEncode([]byte(vors.CmdUnmuted), []byte{peer.sid})
+                       for _, p := range room.peers {
+                               if p.sid == peer.sid {
+                                       continue
+                               }
+                               go func(tx chan []byte) { tx <- s }(p.tx)
+                       }
                default:
                        logger.Error("unknown", "cmd", cmd)
                }