From 289a5f5febbe6b23aa7520b5531d763b0bebab39 Mon Sep 17 00:00:00 2001 From: Igor Kulikov Date: Tue, 13 Nov 2018 14:45:06 +0200 Subject: [PATCH] Handle WS errors. --- ui/src/app/api/telemetry-websocket.service.js | 16 ++++++++++++++-- ui/src/app/common/types.constant.js | 4 +++- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/ui/src/app/api/telemetry-websocket.service.js b/ui/src/app/api/telemetry-websocket.service.js index 3e08e60cc1..973e7a575a 100644 --- a/ui/src/app/api/telemetry-websocket.service.js +++ b/ui/src/app/api/telemetry-websocket.service.js @@ -26,7 +26,7 @@ const WS_IDLE_TIMEOUT = 90000; const MAX_PUBLISH_COMMANDS = 10; /*@ngInject*/ -function TelemetryWebsocketService($rootScope, $websocket, $timeout, $window, types, userService) { +function TelemetryWebsocketService($rootScope, $websocket, $timeout, $window, toast, types, userService) { var isOpening = false, isOpened = false, @@ -162,7 +162,9 @@ function TelemetryWebsocketService($rootScope, $websocket, $timeout, $window, ty function onMessage (message) { if (message.data) { var data = angular.fromJson(message.data); - if (data.subscriptionId) { + if (data.errorCode) { + showWsError(data.errorCode, data.errorMsg); + } else if (data.subscriptionId) { var subscriber = subscribers[data.subscriptionId]; if (subscriber && data) { var keys = fetchKeys(data.subscriptionId); @@ -182,6 +184,16 @@ function TelemetryWebsocketService($rootScope, $websocket, $timeout, $window, ty checkToClose(); } + function showWsError(errorCode, errorMsg) { + var message = 'WebSocket Error: '; + if (errorMsg) { + message += errorMsg; + } else { + message += "error code - " + errorCode + "."; + } + toast.showError(message); + } + function fetchKeys(subscriptionId) { var command = commands[subscriptionId]; if (command && command.keys && command.keys.length > 0) { diff --git a/ui/src/app/common/types.constant.js b/ui/src/app/common/types.constant.js index 506ef1d9b6..bbfca60f94 100644 --- a/ui/src/app/common/types.constant.js +++ b/ui/src/app/common/types.constant.js @@ -23,7 +23,9 @@ export default angular.module('thingsboard.types', []) permissionDenied: 20, invalidArguments: 30, badRequestParams: 31, - itemNotFound: 32 + itemNotFound: 32, + tooManyRequests: 33, + tooManyUpdates: 34 }, entryPoints: { login: "/api/auth/login",