mirror of
https://github.com/pierre42100/ComunicWeb
synced 2024-11-22 20:19:21 +00:00
Block page loading while WebSocket is not connected
This commit is contained in:
parent
5eee376136
commit
321a91910f
@ -11,7 +11,7 @@ ComunicWeb.common.system = {
|
||||
* @param {String} openPage Specify a page to open
|
||||
* @return {Boolean} True for a success
|
||||
*/
|
||||
init: function(openPage){
|
||||
init: async function(openPage){
|
||||
|
||||
//Display Comunic logo
|
||||
ComunicWeb.debug.displayComunicLogo();
|
||||
@ -66,8 +66,14 @@ ComunicWeb.common.system = {
|
||||
/**
|
||||
* What to do after login refresh
|
||||
*/
|
||||
var afterLoginRefresh = function(){
|
||||
var afterLoginRefresh = async function(){
|
||||
|
||||
// Initialize Websocket if user is connected
|
||||
if(signed_in()) {
|
||||
await UserWebSocket.Connect();
|
||||
await UserWebSocket.WaitForConnected();
|
||||
}
|
||||
|
||||
/**
|
||||
* Open a page
|
||||
*/
|
||||
@ -79,10 +85,6 @@ ComunicWeb.common.system = {
|
||||
//Open specified page
|
||||
ComunicWeb.common.page.openPage(openPage);
|
||||
|
||||
// Initialize Websocket if user is connect
|
||||
if(signed_in())
|
||||
UserWebSocket.Connect();
|
||||
|
||||
//End of init
|
||||
ComunicWeb.debug.logMessage("Application is ready !");
|
||||
}
|
||||
|
@ -56,6 +56,22 @@ class UserWebSocket {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Wait for the socket to be connected (if not already)
|
||||
*/
|
||||
static WaitForConnected() {
|
||||
return new Promise((res, err) => {
|
||||
|
||||
// Check if we are already connected
|
||||
if(this.ws.readyState == WebSocket.OPEN) {
|
||||
res();
|
||||
return;
|
||||
}
|
||||
|
||||
this.ws.addEventListener("open", () => res());
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Handles websocket errors
|
||||
*/
|
||||
@ -69,6 +85,9 @@ class UserWebSocket {
|
||||
*/
|
||||
static async Closed(e) {
|
||||
console.error("WS closed", e)
|
||||
|
||||
// Reset requests queue
|
||||
requests = {};
|
||||
|
||||
// Check if the server was gracefully stopped
|
||||
if(!this.hasOwnProperty("ws"))
|
||||
|
@ -151,7 +151,7 @@ ComunicWeb.user.userLogin = {
|
||||
};
|
||||
|
||||
//What to do after the request is completed
|
||||
var afterAPIrequest = function(result){
|
||||
const afterAPIrequest = async function(result){
|
||||
//Prepare data return
|
||||
var loginstate = false;
|
||||
|
||||
@ -178,7 +178,8 @@ ComunicWeb.user.userLogin = {
|
||||
ComunicWeb.components.mailCaching.set(usermail);
|
||||
|
||||
// Initialize websocket
|
||||
UserWebSocket.Connect();
|
||||
await UserWebSocket.Connect();
|
||||
await UserWebSocket.WaitForConnected();
|
||||
}
|
||||
|
||||
//Perform next action if login failed
|
||||
|
Loading…
Reference in New Issue
Block a user