From eb83ae48c158ed348794d4de93cce3dafc6c2564 Mon Sep 17 00:00:00 2001 From: Moritz Langenstein <ml5717@ic.ac.uk> Date: Thu, 10 Oct 2019 10:56:33 +0100 Subject: [PATCH] (ml5717) Added simple UI for connections --- public/index.html | 12 ++++++++++++ src/app.js | 39 +++++++++++++++++++++++++++++++++++++-- src/y-webrtc/index.js | 4 ++++ 3 files changed, 53 insertions(+), 2 deletions(-) diff --git a/public/index.html b/public/index.html index 0be8682..514e925 100644 --- a/public/index.html +++ b/public/index.html @@ -4,6 +4,18 @@ <meta charset="UTF-8" /> </head> <body> + <div> + Your client ID: <input id="user-id" type="text" value="" readonly="" /> + </div> + <div> + Enter peer ID: <input id="peer-id" type="text" value="" /> + <button id="peer-connect">Connect</button> + </div> + <div> + Connected peers: + <ul id="connected-peers"></ul> + </div> + <textarea style="width: 100%; height: 500px" id="textfield"></textarea> <script src="js/app.js"></script> diff --git a/src/app.js b/src/app.js index 9361101..978f335 100644 --- a/src/app.js +++ b/src/app.js @@ -20,7 +20,42 @@ Y({ }).then(y => { y.share.textfield.bind(document.getElementById("textfield")) - global.connectToPeer = function(uid) { - y.connector.connectToPeer(uid) + const userIDElem = document.getElementById("user-id") + const peerIDElem = document.getElementById("peer-id") + const peerButton = document.getElementById("peer-connect") + const connectedP = document.getElementById("connected-peers") + + userIDElem.value = y.db.userId + + y.connector.onUserEvent(function(event) { + switch (event.action) { + case "userID": + userIDElem.value = event.id + break + case "userJoined": + var peerElem = document.createElement("li") + peerElem.innerHTML = event.user + connectedP.appendChild(peerElem) + break + case "userLeft": + for (var peer of connectedP.children) { + if (peer.innerHTML == event.user) { + connectedP.removeChild(peer) + } + } + break + } + }) + + peerButton.onclick = function() { + const peerID = peerIDElem.value + + if (peerID == "") { + return + } + + y.connector.connectToPeer(peerID) + + peerIDElem.value = "" } }) diff --git a/src/y-webrtc/index.js b/src/y-webrtc/index.js index c6ba4b5..0d2f040 100644 --- a/src/y-webrtc/index.js +++ b/src/y-webrtc/index.js @@ -33,6 +33,10 @@ function extend(Y) { peer.on("open", function(id) { console.log("My peer ID is: " + id) + for (var f of self.userEventListeners) { + f({ action: "userID", id: id }) + } + self.setUserId(id) }) -- GitLab