diff options
author | Joram Wilander <jwawilander@gmail.com> | 2016-07-27 09:54:43 -0400 |
---|---|---|
committer | Christopher Speller <crspeller@gmail.com> | 2016-07-27 09:54:42 -0400 |
commit | fc7ae6ba65185719591d89a1be84fb3f9804943b (patch) | |
tree | d65c9338bca8502d884e982830747ad01cefb49c /webapp | |
parent | 199c55b5662789e27858a2da9461d4e2ea6026c5 (diff) | |
download | chat-fc7ae6ba65185719591d89a1be84fb3f9804943b.tar.gz chat-fc7ae6ba65185719591d89a1be84fb3f9804943b.tar.bz2 chat-fc7ae6ba65185719591d89a1be84fb3f9804943b.zip |
Initialize and close WebSocket more accurately and consistently (#3683)
Diffstat (limited to 'webapp')
-rw-r--r-- | webapp/client/websocket_client.jsx | 11 | ||||
-rw-r--r-- | webapp/components/logged_in.jsx | 6 |
2 files changed, 6 insertions, 11 deletions
diff --git a/webapp/client/websocket_client.jsx b/webapp/client/websocket_client.jsx index 99d2311b7..aa78d8d98 100644 --- a/webapp/client/websocket_client.jsx +++ b/webapp/client/websocket_client.jsx @@ -10,7 +10,6 @@ export default class WebSocketClient { this.conn = null; this.sequence = 1; this.connectFailCount = 0; - this.manuallyClosed = false; this.eventCallback = null; this.responseCallbacks = {}; this.reconnectCallback = null; @@ -27,8 +26,6 @@ export default class WebSocketClient { console.log('websocket connecting to ' + connectionUrl); //eslint-disable-line no-console } - this.manuallyClosed = false; - this.conn = new WebSocket(connectionUrl); this.conn.onopen = () => { @@ -51,10 +48,6 @@ export default class WebSocketClient { console.log('websocket closed'); //eslint-disable-line no-console } - if (this.manuallyClosed) { - return; - } - this.connectFailCount++; if (this.closeCallback) { @@ -124,11 +117,13 @@ export default class WebSocketClient { } close() { - this.manuallyClosed = true; this.connectFailCount = 0; this.sequence = 1; if (this.conn && this.conn.readyState === WebSocket.OPEN) { + this.conn.onclose = () => {}; //eslint-disable-line no-empty-function this.conn.close(); + this.conn = null; + console.log('websocket closed'); //eslint-disable-line no-console } } diff --git a/webapp/components/logged_in.jsx b/webapp/components/logged_in.jsx index 14b7e138b..ea9df3692 100644 --- a/webapp/components/logged_in.jsx +++ b/webapp/components/logged_in.jsx @@ -25,9 +25,6 @@ export default class LoggedIn extends React.Component { this.onUserChanged = this.onUserChanged.bind(this); this.setupUser = this.setupUser.bind(this); - // Initalize websocket - WebSocketActions.initialize(); - // Force logout of all tabs if one tab is logged out $(window).bind('storage', (e) => { // when one tab on a browser logs out, it sets __logout__ in localStorage to trigger other tabs to log out @@ -105,6 +102,9 @@ export default class LoggedIn extends React.Component { } componentDidMount() { + // Initalize websocket + WebSocketActions.initialize(); + // Listen for user UserStore.addChangeListener(this.onUserChanged); |