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
+ })
})
}
})