Make websocket.html process notifications
Currently Websocket html client example can only process responses from Zaqar. It can't handle notifications from Zaqar. When notification is received by Websocket html client example (examples/websocket.html), javascript console throws an Exception: TypeError: data.request is undefined That's because Websocket html client example always expects received payload('data' object) to have 'request', 'headers' and 'body' properties. All these properties exist in payload only when response from Zaqar is received. But when notification is received, 'data' object do not have 'request' and 'headers' properties. This patch makes Websocket html client example able to process notifications from Zaqar by examining 'data' object's properties and, if notification is detected, processing 'data' differently. Closes-Bug: 1531671 Change-Id: I3ea4d092f097d22784f21bf9c38657ff4e12c32d
This commit is contained in:
parent
7ea60d0e8d
commit
bd86d38a76
@ -53,13 +53,14 @@
|
|||||||
var node = document.createElement('div');
|
var node = document.createElement('div');
|
||||||
var msg = new Date().toUTCString();
|
var msg = new Date().toUTCString();
|
||||||
var data = JSON.parse(evt.data);
|
var data = JSON.parse(evt.data);
|
||||||
|
if ('request' in data && 'headers' in data) {
|
||||||
|
// Response received
|
||||||
var action = data["request"]["action"];
|
var action = data["request"]["action"];
|
||||||
msg += " action: " + action;
|
msg += " action: " + action;
|
||||||
msg += " status: " + data["headers"]["status"];
|
msg += " status: " + data["headers"]["status"];
|
||||||
msg += " body: " + JSON.stringify(data["body"]);
|
msg += " body: " + JSON.stringify(data["body"]);
|
||||||
node.appendChild(document.createTextNode(msg));
|
node.appendChild(document.createTextNode(msg));
|
||||||
$('#log').append(node);
|
$('#log').append(node);
|
||||||
|
|
||||||
if (action == 'queue_list') {
|
if (action == 'queue_list') {
|
||||||
var queues = data['body']['queues'];
|
var queues = data['body']['queues'];
|
||||||
display_queues(queues);
|
display_queues(queues);
|
||||||
@ -73,6 +74,14 @@
|
|||||||
} else if (action == 'message_post' || action == 'message_delete') {
|
} else if (action == 'message_post' || action == 'message_delete') {
|
||||||
list_messages();
|
list_messages();
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
// Notification received
|
||||||
|
msg += " Got notification."
|
||||||
|
msg += " body: " + JSON.stringify(data["body"]);
|
||||||
|
node.appendChild(document.createTextNode(msg));
|
||||||
|
$('#log').append(node);
|
||||||
|
list_messages();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
login = function(frm) {
|
login = function(frm) {
|
||||||
var data = {
|
var data = {
|
||||||
|
Loading…
Reference in New Issue
Block a user