From 9e3afb8aa598f3e69e2c3723335507c12b4cd1f1 Mon Sep 17 00:00:00 2001 From: José Bollo Date: Tue, 19 Apr 2016 18:02:11 +0200 Subject: initial event handler MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: Idb92d6de9904d050b37ef0a5d664e82573ff640d Signed-off-by: José Bollo --- test/AFB.js | 15 ++++++++++++++- test/hello-world.html | 1 + 2 files changed, 15 insertions(+), 1 deletion(-) (limited to 'test') diff --git a/test/AFB.js b/test/AFB.js index 309db472..44b1a908 100644 --- a/test/AFB.js +++ b/test/AFB.js @@ -37,12 +37,14 @@ var AFB_websocket; var CALL = 2; var RETOK = 3; var RETERR = 4; + var EVENT = 5; var PROTO1 = "x-afb-ws-json1"; AFB_websocket = function(onopen, onabort) { this.ws = new WebSocket(urlws, [ PROTO1 ]); this.pendings = {}; + this.awaitens = {}; this.counter = 0; this.ws.onopen = onopen.bind(this); this.ws.onerror = onerror.bind(this); @@ -90,6 +92,10 @@ var AFB_websocket; delete this.pendings[id]; } switch (code) { + case EVENT: + var a = this.awaitens[id]; + if (a) + a.forEach(function(handler){handler(ans);}); case RETOK: pend && pend.onsuccess && pend.onsuccess(ans, this); break; @@ -112,9 +118,16 @@ var AFB_websocket; this.ws.send(JSON.stringify(arr)); } + function onevent(api, name, handler) { + var id = api+"/"+name; + var list = this.awaitens[id] || (this.awaitens[id] = []); + list.push(handler); + } + AFB_websocket.prototype = { close: close, - call: call + call: call, + onevent: onevent }; } /*********************************************/ diff --git a/test/hello-world.html b/test/hello-world.html index 67464ff5..f8e0f54a 100644 --- a/test/hello-world.html +++ b/test/hello-world.html @@ -9,5 +9,6 @@
  • ping null
  • ping bug
  • ping json +
  • ping event
  • not a verb
  • not an api -- cgit 1.2.3-korg