From 91c69428ed0dc2dd26b00c6dd5a6684f25515a34 Mon Sep 17 00:00:00 2001 From: Abin Mn Date: Tue, 26 Oct 2021 21:18:20 +0530 Subject: Cleanup/remove feature toggle for todo, workspace, service proxy (#2134) * Remove DEFAULT_FEATURES_CONFIG from config * Remove static controller Co-authored-by: Madhuri B --- src/features/settingsWS/store.js | 132 --------------------------------------- 1 file changed, 132 deletions(-) delete mode 100755 src/features/settingsWS/store.js (limited to 'src/features/settingsWS/store.js') diff --git a/src/features/settingsWS/store.js b/src/features/settingsWS/store.js deleted file mode 100755 index 3b9e10825..000000000 --- a/src/features/settingsWS/store.js +++ /dev/null @@ -1,132 +0,0 @@ -import { observable } from 'mobx'; -import WebSocket from 'ws'; -import ms from 'ms'; - -import { FeatureStore } from '../utils/FeatureStore'; -import { createReactions } from '../../stores/lib/Reaction'; -import { WS_API } from '../../environment-remote'; - -const debug = require('debug')('Ferdi:feature:settingsWS:store'); - -export class SettingsWSStore extends FeatureStore { - stores = null; - - actions = null; - - ws = null; - - pingTimeout = null; - - reconnectTimeout = null; - - @observable connected = false; - - start(stores, actions) { - this.stores = stores; - this.actions = actions; - - this._registerReactions( - createReactions([ - this._initialize.bind(this), - this._reconnect.bind(this), - this._close.bind(this), - ]), - ); - } - - connect() { - try { - const wsURL = `${WS_API}/ws/${this.stores.user.data.id}`; - debug('Setting up WebSocket to', wsURL); - - this.ws = new WebSocket(wsURL); - - this.ws.on('open', () => { - debug('Opened WebSocket'); - this.send({ - action: 'authorize', - token: this.stores.user.authToken, - }); - - this.connected = true; - - this.heartbeat(); - }); - - this.ws.on('message', data => { - const resp = JSON.parse(data); - debug('Received message', resp); - - if (resp.id) { - this.stores.user.getUserInfoRequest.patch(result => { - if (!result) return; - - debug('Patching user object with new values'); - Object.assign(result, resp); - }); - } - }); - - this.ws.on('ping', this.heartbeat.bind(this)); - } catch (error) { - console.error(error); - } - } - - heartbeat() { - debug('Heartbeat'); - clearTimeout(this.pingTimeout); - - this.pingTimeout = setTimeout(() => { - debug('Terminating connection, reconnecting in 35'); - this.ws.terminate(); - - this.connected = false; - }, ms('35s')); - } - - send(data) { - if (this.ws && this.ws.readyState === 1) { - this.ws.send(JSON.stringify(data)); - debug('Sending data', data); - } else { - debug('WebSocket is not initialized'); - } - } - - // Reactions - - _initialize() { - if (this.stores.user.data.id && !this.ws) { - this.connect(); - } - } - - _reconnect() { - if (!this.connected) { - debug('Trying to reconnect in 30s'); - this.reconnectTimeout = setInterval(() => { - debug('Trying to reconnect'); - this.connect(); - }, ms('30s')); - } else { - debug('Clearing reconnect interval'); - clearInterval(this.reconnectTimeout); - } - } - - _close() { - if (!this.stores.user.isLoggedIn) { - debug('Stopping reactions'); - this._stopReactions(); - - if (this.ws) { - debug('Terminating connection'); - this.ws.terminate(); - this.ws = null; - } - } - } -} - -export default SettingsWSStore; -- cgit v1.2.3-70-g09d2