summaryrefslogtreecommitdiff
path: root/src/js_bridge.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/js_bridge.js')
-rw-r--r--src/js_bridge.js70
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
+ }});
+ });
},
};