socket.io & simple-peer: видеочат работает только для 2 человек - PullRequest
1 голос
/ 17 мая 2019

Я пытаюсь создать видеочат в формате один-к-одному с socket.io и simple-peer, он работает, как и должно быть, только для 2 человек, и если третий подключается, код предупреждает его, что уже есть 2 человека и s /он должен подождать.и я хочу добавить к этому коду комнаты только для 2 человек (например, первая пара входит в комнату № 1, вторая входит в комнату № 2 и т. д.), чтобы дать каждому возможность вести видеочат друг с другом безожидание.он попробовал этот код, но он не дал мне результата, который я хотел

let room = vnumb //vnumb is global variable which determines room name;
socket.join(room);
socket.current_vroom = room
vchns.in(room).clients((err,clients)=>{
if(err) console.log(err);

if(clients.length < 2){
  if(clients.length == 1){
  //emit some event

  }
}
if(clients.length >= 2){
  ++vnumb
}
})

вот серверный код

let clients = 0

io.on('connection', function (socket) {
    socket.on("NewClient", function () {
        if (clients < 2) {
            if (clients == 1) {
                this.emit('CreatePeer')
            }
        }
        else
            this.emit('SessionActive')
        clients++;
    })
    socket.on('Offer', SendOffer)
    socket.on('Answer', SendAnswer)
    socket.on('disconnect', Disconnect)
})

function Disconnect() {
    if (clients > 0) {
        if (clients <= 2)
            this.broadcast.emit("Disconnect")
        clients--
    }
}

function SendOffer(offer) {
    this.broadcast.emit("BackOffer", offer)
}

function SendAnswer(data) {
    this.broadcast.emit("BackAnswer", data)
}

так, как я могу делать то, что я хочу?Спасибо!

...