From decb72f936060a65bff18e9cbf33642ea3a71cd0 Mon Sep 17 00:00:00 2001 From: Alexander M Pickering Date: Thu, 9 Jan 2025 18:11:46 -0600 Subject: Work --- src/js_bridge.js | 70 +++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 64 insertions(+), 6 deletions(-) (limited to 'src/js_bridge.js') diff --git a/src/js_bridge.js b/src/js_bridge.js index 46065cb..0b5ba08 100644 --- a/src/js_bridge.js +++ b/src/js_bridge.js @@ -8,15 +8,28 @@ function genRanHex(size) { } window.PEER = { - event_queue: {}, + event_queue: [], peers: {}, - message_queue: {}, - create: function(name, options) { + message_queue: [], + connections: {}, + create: function(tbl) { + var name = tbl.name; + var options = tbl.options; + console.log("[JS] Creating peer " + name); var peer = new Peer(name, options); PEER.peers[name] = peer; }, - on: function(name, e, message) { + on: function(tbl) { + var name = tbl.name; + var e = tbl.e; + var message = tbl.message; + console.log("[JS] Setting hook for " + name + "," + e + "," + message); PEER.peers[name].on(e, function(data) { + console.log("[JS] Peer " + name + " received " + e); + if(e == "connection"){ + PEER.connections[[name,data.peer]] = data; + data = [name,data.peer]; // rewrite connections + } PEER.message_queue.push({"message":message, "data":{ "call": "on", "peer": name, @@ -25,7 +38,52 @@ window.PEER = { }}); }); }, - connect: function(name, id, options) { - PEER.peers[name].connect(id, options); + connect: function(tbl) { + var name = tbl.name; + var id = tbl.id; + console.log("[JS] connecting " + name + " to " + id); + var conn = PEER.peers[name].connect(id); + PEER.connections[[name,id]] = conn; + return [name,id]; + }, + disconnect: function(tbl) { + PEER.peers[tbl.name].disconnect(); + }, + reconnect: function(tbl){ + PEER.peers[tbl.name].reconnect(); + }, + destroy: function(tbl){ + PEER.peers[tbl.name].destroy(); + }, + send: function(tbl){ + var name = tbl.name; + var id = tbl.id; + var data = tbl.data; + console.log("[JS] " + name + " is sending " + data + " to " + id); + console.log(PEER.connections[[name,id]]); + console.log(data); + PEER.connections[[name,id]].send(data); + }, + close: function(tbl){ + var name = tbl.name; + var id = tbl.id; + PEER.connections[[name,id]].close(); + }, + conn_on: function(tbl){ + var name = tbl.name; + var id = tbl.id; + var e = tbl.e; + var message = tbl.message; + console.log("[JS] Setting hook for [" + name + "," + id + "] " + e + "," + message); + PEER.connections[[name,id]].on(e, function(c) { + console.log("[JS] connection between " + name + " and " + id + " received " + e); + PEER.message_queue.push({"message":message, "data":{ + "call": "on", + "peer": name, + "id": id, + "e": e, + "data": c + }}); + }); }, }; -- cgit v1.2.3-70-g09d2