diff options
| author | Alexander M Pickering <alex@cogarr.net> | 2025-01-09 18:11:46 -0600 |
|---|---|---|
| committer | Alexander M Pickering <alex@cogarr.net> | 2025-01-09 18:11:46 -0600 |
| commit | decb72f936060a65bff18e9cbf33642ea3a71cd0 (patch) | |
| tree | 3b07bb1bfc1e4f0e39ec4ff8e0c243cd4fab0d61 /src/js_bridge.js | |
| parent | 726876d42270f8974fd495be91127ea7585472ff (diff) | |
| download | ggj25-decb72f936060a65bff18e9cbf33642ea3a71cd0.tar.gz ggj25-decb72f936060a65bff18e9cbf33642ea3a71cd0.tar.bz2 ggj25-decb72f936060a65bff18e9cbf33642ea3a71cd0.zip | |
Work
Diffstat (limited to 'src/js_bridge.js')
| -rw-r--r-- | src/js_bridge.js | 70 |
1 files changed, 64 insertions, 6 deletions
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 + }}); + }); }, }; |
