Простая программа на peerjs
Недавно начал изучать peerjs. Сразу нашел простой и понятный пример для реализации чата между двумя пользователями. Решил немного модифицировать программу, чтобы она могла хранить не одно соединение, а несколько, но почему-то такая программа не работает:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>PeerJS Обмен сообщениями</title>
<script src="https://unpkg.com/[email protected]/dist/peerjs.min.js"></script>
</head>
<body>
<h3>Мой ID: <span id=myid ></span></h3>
<input id=otherPeerId type=text placeholder="otherPeerId" ><button onclick="connectToNode(document.getElementById('otherPeerId').value)">Соединиться</button>
<div id=messages style="width:400px;height:60vh; background:#ADD8E6;margin:5px;">
</div><br>
<textarea id=mess style="width:400px;height:15vh" ></textarea><br>
<button onclick="sendMess(document.getElementById('mess'))">Отправить</button>
<script>
var messList=[], conns=[];
function addMess(mess) {
messList.push(mess);
document.getElementById('messages').innerHTML=messList.join("");
}
var peer = new Peer();
peer.on('open', function(peerID) {
document.getElementById('myid').innerHTML=peerID;
});
peer.on('connection', function(c) { //входящее соединение...
console.log('connection');
conns.push(c);
console.log("pre init conn");
initConn();
});
function connectToNode(partnerPeer) { //исходящее соединение...
conns.push(peer.connect(partnerPeer));
initConn();
}
function initConn() {
console.log('in start of initConn function');
conn = conns[conns.len - 1];
console.log("in initConn");
conn.on ('open', function () { //открыто соединение
console.log("open conn");
addMess("<div><h4>Соединение установлено</h4></div>");
conn.on ('data', function (data) { //прилетело сообщение
addMess("<div><b>Партнер: </b>"+data+"</div>");
});
});
conn.on('close',function() {addMess('-----------Соединение разорвано-------------');});
}
function sendMess(elem) {
addMess("<div><b>Я: </b>"+elem.value+"</div>");
for (let i = 0; i < conns.len; i++){
conns[i].send(elem.value);
}
elem.value="";
}
</script>
</body>
Кто-нибудь может помочь?