This is an automated email from the ASF dual-hosted git repository.

vjasani pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/ambari.git


The following commit(s) were added to refs/heads/trunk by this push:
     new 1fb531c31e AMBARI-25928: Continuous increase of websocket connections 
in Ambari web UI (#3783)
1fb531c31e is described below

commit 1fb531c31e86688d5d3a696d4ad6d07921d99aa1
Author: zrain <2296342...@qq.com>
AuthorDate: Sat Apr 27 10:17:02 2024 +0800

    AMBARI-25928: Continuous increase of websocket connections in Ambari web UI 
(#3783)
---
 ambari-web/app/utils/stomp_client.js | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

diff --git a/ambari-web/app/utils/stomp_client.js 
b/ambari-web/app/utils/stomp_client.js
index 8d4b95b5fe..cb0af27770 100644
--- a/ambari-web/app/utils/stomp_client.js
+++ b/ambari-web/app/utils/stomp_client.js
@@ -58,6 +58,11 @@ module.exports = Em.Object.extend({
    */
   isConnected: false,
 
+  /**
+   * @type {number | null}
+   */
+  timerId: null,
+
   /**
    * @type {boolean}
    */
@@ -157,9 +162,13 @@ module.exports = Em.Object.extend({
   },
 
   reconnect: function(useSockJS) {
+    if (this.timerId !== null) {
+      clearTimeout(this.timerId);
+    }
     const subscriptions = Object.assign({}, this.get('subscriptions'));
-    setTimeout(() => {
+    this.timerId = setTimeout(() => {
       console.debug('Reconnecting to WebSocket...');
+      this.disconnect();
       this.connect(useSockJS).done(() => {
         this.set('subscriptions', {});
         for (let i in subscriptions) {
@@ -173,7 +182,10 @@ module.exports = Em.Object.extend({
   },
 
   disconnect: function () {
-    this.get('client').disconnect();
+    var client = this.get('client');
+    if (client.ws.readyState === client.ws.OPEN) {
+      client.disconnect();
+    }
   },
 
   /**


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@ambari.apache.org
For additional commands, e-mail: commits-h...@ambari.apache.org

Reply via email to