|
@@ -3,6 +3,7 @@ import store from "./store";
|
|
|
import ListenerHandler from "./classes/ListenerHandler.class";
|
|
|
|
|
|
const onConnect = [];
|
|
|
+let ready = false;
|
|
|
|
|
|
let pendingDispatches = [];
|
|
|
|
|
@@ -20,7 +21,7 @@ export default {
|
|
|
dispatcher: null,
|
|
|
|
|
|
onConnect(cb) {
|
|
|
- if (this.socket.readyState === 1) cb();
|
|
|
+ if (this.socket.readyState === 1 && ready) cb();
|
|
|
|
|
|
return onConnect.push(cb);
|
|
|
},
|
|
@@ -105,15 +106,7 @@ export default {
|
|
|
store.dispatch("websockets/createSocket", this.socket);
|
|
|
|
|
|
this.socket.onopen = () => {
|
|
|
- console.log("WS: SOCKET CONNECTED");
|
|
|
-
|
|
|
- setTimeout(() => {
|
|
|
- onConnect.forEach(cb => cb());
|
|
|
-
|
|
|
- // dispatches that were attempted while the server was offline
|
|
|
- pendingDispatches.forEach(cb => cb());
|
|
|
- pendingDispatches = [];
|
|
|
- }, 150); // small delay between readyState being 1 and the server actually receiving dispatches
|
|
|
+ console.log("WS: SOCKET OPENED");
|
|
|
};
|
|
|
|
|
|
this.socket.onmessage = message => {
|
|
@@ -136,7 +129,9 @@ export default {
|
|
|
};
|
|
|
|
|
|
this.socket.onclose = () => {
|
|
|
- console.log("WS: SOCKET DISCONNECTED");
|
|
|
+ console.log("WS: SOCKET CLOSED");
|
|
|
+
|
|
|
+ ready = false;
|
|
|
|
|
|
onDisconnect.temp.forEach(cb => cb());
|
|
|
onDisconnect.persist.forEach(cb => cb());
|
|
@@ -150,5 +145,18 @@ export default {
|
|
|
|
|
|
// new Toast("Cannot perform this action at this time.");
|
|
|
};
|
|
|
+
|
|
|
+ this.socket.on("ready", () => {
|
|
|
+ console.log("WS: SOCKET READY");
|
|
|
+ ready = true;
|
|
|
+
|
|
|
+ setTimeout(() => {
|
|
|
+ onConnect.forEach(cb => cb());
|
|
|
+
|
|
|
+ // dispatches that were attempted while the server was offline
|
|
|
+ pendingDispatches.forEach(cb => cb());
|
|
|
+ pendingDispatches = [];
|
|
|
+ }, 150); // small delay between readyState being 1 and the server actually receiving dispatches
|
|
|
+ });
|
|
|
}
|
|
|
};
|