From f0a84897b451a0e27eac6d16ef24b642254a0f2c Mon Sep 17 00:00:00 2001 From: =Corey Hulen Date: Fri, 5 Feb 2016 14:17:53 -0800 Subject: GIT-1812 fixing wesocket issue with firefox --- web/react/stores/socket_store.jsx | 24 ++++++++++++++++-------- web/templates/head.html | 6 ++++++ 2 files changed, 22 insertions(+), 8 deletions(-) (limited to 'web') diff --git a/web/react/stores/socket_store.jsx b/web/react/stores/socket_store.jsx index 9c3270f68..bc2bdbe64 100644 --- a/web/react/stores/socket_store.jsx +++ b/web/react/stores/socket_store.jsx @@ -28,10 +28,13 @@ class SocketStoreClass extends EventEmitter { this.addChangeListener = this.addChangeListener.bind(this); this.removeChangeListener = this.removeChangeListener.bind(this); this.sendMessage = this.sendMessage.bind(this); + this.close = this.close.bind(this); + this.failCount = 0; this.initialize(); } + initialize() { if (!UserStore.getCurrentId()) { return; @@ -106,15 +109,19 @@ class SocketStoreClass extends EventEmitter { }; } } + emitChange(msg) { this.emit(CHANGE_EVENT, msg); } + addChangeListener(callback) { this.on(CHANGE_EVENT, callback); } + removeChangeListener(callback) { this.removeListener(CHANGE_EVENT, callback); } + handleMessage(msg) { switch (msg.action) { case SocketEvents.POSTED: @@ -153,6 +160,7 @@ class SocketStoreClass extends EventEmitter { default: } } + sendMessage(msg) { if (conn && conn.readyState === WebSocket.OPEN) { conn.send(JSON.stringify(msg)); @@ -161,9 +169,16 @@ class SocketStoreClass extends EventEmitter { this.initialize(); } } + setTranslations(messages) { this.translations = messages; } + + close() { + if (conn && conn.readyState === WebSocket.OPEN) { + conn.close(); + } + } } function handleNewPostEvent(msg, translations) { @@ -305,12 +320,5 @@ function handlePreferenceChangedEvent(msg) { var SocketStore = new SocketStoreClass(); -/*SocketStore.dispatchToken = AppDispatcher.register((payload) => { - var action = payload.action; - - switch (action.type) { - default: - } - });*/ - export default SocketStore; +window.SocketStore = SocketStore; diff --git a/web/templates/head.html b/web/templates/head.html index b1ec905b5..da65e1779 100644 --- a/web/templates/head.html +++ b/web/templates/head.html @@ -122,6 +122,12 @@ } }); }); + + $(window).on('beforeunload', function(){ + if (window.SocketStore) { + SocketStore.close(); + } + });