summaryrefslogtreecommitdiffstats
path: root/web
diff options
context:
space:
mode:
author=Corey Hulen <corey@hulen.com>2016-02-05 14:17:53 -0800
committer=Corey Hulen <corey@hulen.com>2016-02-05 14:17:53 -0800
commitf0a84897b451a0e27eac6d16ef24b642254a0f2c (patch)
treebaaa7750506482052a2ef37a346bb60ffa534d06 /web
parentf4bf476441ab2dfe7920d5be40c05205eff4ed94 (diff)
downloadchat-f0a84897b451a0e27eac6d16ef24b642254a0f2c.tar.gz
chat-f0a84897b451a0e27eac6d16ef24b642254a0f2c.tar.bz2
chat-f0a84897b451a0e27eac6d16ef24b642254a0f2c.zip
GIT-1812 fixing wesocket issue with firefox
Diffstat (limited to 'web')
-rw-r--r--web/react/stores/socket_store.jsx24
-rw-r--r--web/templates/head.html6
2 files changed, 22 insertions, 8 deletions
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();
+ }
+ });
</script>
<script>