handle the response returned from ws server for unavailable methods
This commit is contained in:
parent
43caffb85e
commit
99d20a9869
|
|
@ -296,7 +296,7 @@
|
|||
const socket = new WebSocket(baseUrl);
|
||||
|
||||
socket.onclose = function (event) {
|
||||
console.error("websocket channel closed");
|
||||
console.error("QWebChannel websocket closed");
|
||||
if (event.code != 1000) {
|
||||
// Error code 1000 means that the connection was closed normally.
|
||||
// Try to reconnect.
|
||||
|
|
@ -308,7 +308,7 @@
|
|||
};
|
||||
|
||||
socket.onerror = function (error) {
|
||||
console.error("websocket channel error: " + error);
|
||||
console.error("QWebChannel websocket error: " + error);
|
||||
};
|
||||
|
||||
socket.onopen = function () {
|
||||
|
|
@ -319,19 +319,25 @@
|
|||
let deferred;
|
||||
try{
|
||||
jkfrontendchannel.sendText.connect(function (message) {
|
||||
//console.log("Message received via QWebChannel: " + message);
|
||||
let msg = JSON.parse(message)
|
||||
let req_id = msg.request_id
|
||||
let response = msg.response;
|
||||
console.log("Message received via QWebChannel: " + message);
|
||||
//handle Method Not Implemented"
|
||||
if(typeof resp === 'object' && resp[0] === "Method Not Implemented"){
|
||||
//throw new Error("Method Not Implemented");
|
||||
deferred.resolve(null) //return null value
|
||||
}else{
|
||||
let msg = JSON.parse(message)
|
||||
let req_id = msg.request_id
|
||||
let response = msg.response;
|
||||
|
||||
deferred = deferredQueue.find(d => {
|
||||
return d.request_id === req_id
|
||||
});
|
||||
deferred = deferredQueue.find(d => {
|
||||
return d.request_id === req_id
|
||||
});
|
||||
|
||||
if(deferred){
|
||||
deferred.resolve(response)
|
||||
//remove this deferred object from queue
|
||||
deferredQueue = deferredQueue.filter((d) => d.request_id !== deferred.request_id)
|
||||
if(deferred){
|
||||
deferred.resolve(response)
|
||||
//remove this deferred object from queue
|
||||
deferredQueue = deferredQueue.filter((d) => d.request_id !== deferred.request_id)
|
||||
}
|
||||
}
|
||||
});
|
||||
//TODO: handle method does not exist
|
||||
|
|
@ -369,7 +375,7 @@
|
|||
let deferred = new Deferred(appMessage.request_id)
|
||||
|
||||
try {
|
||||
//console.log('[asyncJamClient] diverting to backend:', prop, appMessage);
|
||||
console.log('[asyncJamClient] diverting to backend:', prop, appMessage);
|
||||
jkfrontendchannel.receiveText(JSON.stringify(appMessage));
|
||||
deferredQueue.push(deferred)
|
||||
return deferred.promise;
|
||||
|
|
|
|||
Loading…
Reference in New Issue