added host
[henge/kiak.git] / host.js
diff --git a/host.js b/host.js
index 9981cc9..e6600de 100644 (file)
--- a/host.js
+++ b/host.js
@@ -1,18 +1,36 @@
 document.title = "Strapp.io Host"
-const clients = []
+const clients = [] //TODO: Change to Map
 if ("WebSocket" in window) {
   document.addEventListener('DOMContentLoaded', (event) => {
-    const wsock = new WebSocket("wss://" + window.location.host + ":" +  _strapp_port)
+    const wsock = new WebSocket(`${_strapp_protocol}://${window.location.hostname}:${_strapp_port}`)
     wsock.onopen = () => {
-      console.log("Strapped to wss://" + window.location.host + ":" +  _strapp_port)
+      console.log(`Strapped to ${_strapp_protocol}://${window.location.hostname}:${_strapp_port}`)
+
     }
-    wsock.onmessage = (evt) => {
-      console.log("Incoming connection from " + evt.data)
-      console.log("TODO: Open a socket to this client")
-      wsock.send("Got " + evt.data)
-      clients.push({
-       ip: evt.data,
-       dataChannel: undefined
+    wsock.onmessage = (msg) => {
+      /* Message is offer from client */
+      console.log("Incoming connection " + msg)
+
+      /* State machine to parse offer */
+
+      /* New Client Connection*/
+      hpc = new RTCPeerConnection()
+
+      hpc.createAnswer().then((offer) => {
+        return hpc.setLocalDescription(offer)
+      }).then(() => {
+        return hpc.setRemoteDescription(msg.sdp)
+      }).then(() => {
+        const hpk = getPublicKey()
+        wsock.send({
+          cmd: '< sdp pubKey'
+          sdp: hpc.localDescription
+          pubKey: hpk
+        })
+        clients.push({
+          sdp: hpc.localDescription
+          clientPubKey: msg.pubKey
+        })
       })
     }
   })