X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=test%2Fmonitoring%2FAFB.js;h=227b1a97b13a4ef5c1763cc79801880143ea7af4;hb=18d28239330adad61bd2ed9e928673472ecf79dc;hp=ea70357bf734e252ed10b9bc8b5be84d41378641;hpb=6c99397ade62678426b8d7ff193d7bb7bb9a396b;p=src%2Fapp-framework-binder.git diff --git a/test/monitoring/AFB.js b/test/monitoring/AFB.js index ea70357b..227b1a97 100644 --- a/test/monitoring/AFB.js +++ b/test/monitoring/AFB.js @@ -1,5 +1,5 @@ /* - * Copyright (C) 2017 "IoT.bzh" + * Copyright (C) 2017-2019 "IoT.bzh" * Author: José Bollo * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -21,7 +21,10 @@ if (typeof base != "object") var initial = { base: base.base || "api", - token: base.token || initialtoken || "hello", + token: initialtoken || base.token + || URLSearchParams(window.location.search).get('access_token') + || URLSearchParams(window.location.search).get('token') + || "HELLO", host: base.host || window.location.host, url: base.url || undefined }; @@ -67,12 +70,13 @@ var AFB_websocket; var PROTO1 = "x-afb-ws-json1"; AFB_websocket = function(on_open, on_abort) { - var u = urlws; + var u = urlws, p = '?'; if (AFB_context.token) { u = u + '?x-afb-token=' + AFB_context.token; - if (AFB_context.uuid) - u = u + '&x-afb-uuid=' + AFB_context.uuid; + p = '&'; } + if (AFB_context.uuid) + u = u + p + 'x-afb-uuid=' + AFB_context.uuid; this.ws = new WebSocket(u, [ PROTO1 ]); this.url = u; this.pendings = {}; @@ -91,7 +95,7 @@ var AFB_websocket; if (f) { delete this.onopen; delete this.onabort; - f && f(this); + f(this); } this.onerror && this.onerror(this); } @@ -104,8 +108,15 @@ var AFB_websocket; } function onclose(event) { + var err = { + jtype: 'afb-reply', + request: { + status: 'disconnected', + info: 'server hung up' + } + }; for (var id in this.pendings) { - try { this.pendings[id][1](); } catch (x) {/*TODO?*/} + try { this.pendings[id][1](err); } catch (x) {/*NOTHING*/} } this.pendings = {}; this.onclose && this.onclose(); @@ -114,16 +125,16 @@ var AFB_websocket; function fire(awaitens, name, data) { var a = awaitens[name]; if (a) - a.forEach(function(handler){handler(data);}); + a.forEach(function(handler){handler(data, name);}); var i = name.indexOf("/"); if (i >= 0) { a = awaitens[name.substring(0,i)]; if (a) - a.forEach(function(handler){handler(data);}); + a.forEach(function(handler){handler(data, name);}); } a = awaitens["*"]; if (a) - a.forEach(function(handler){handler(data);}); + a.forEach(function(handler){handler(data, name);}); } function reply(pendings, id, ans, offset) { @@ -143,14 +154,14 @@ var AFB_websocket; switch (code) { case RETOK: reply(this.pendings, id, ans, 0); - break; + break; case RETERR: reply(this.pendings, id, ans, 1); - break; + break; case EVENT: default: fire(this.awaitens, id, ans); - break; + break; } }