remove instance, change room url, fix invalid lastRoomUrls
This commit is contained in:
parent
ccafaf11e3
commit
6af1651e03
@ -145,6 +145,7 @@ class ConnectionManager {
|
|||||||
await this.checkAuthUserConnexion();
|
await this.checkAuthUserConnexion();
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.error(err);
|
console.error(err);
|
||||||
|
await this.anonymousLogin();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.localUser = localUserStore.getLocalUser() as LocalUser; //if authToken exist in localStorage then localUser cannot be null
|
this.localUser = localUserStore.getLocalUser() as LocalUser; //if authToken exist in localStorage then localUser cannot be null
|
||||||
@ -172,8 +173,13 @@ class ConnectionManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//get detail map for anonymous login and set texture in local storage
|
//get detail map for anonymous login and set texture in local storage
|
||||||
|
try {
|
||||||
this._currentRoom = await Room.createRoom(new URL(roomPath));
|
this._currentRoom = await Room.createRoom(new URL(roomPath));
|
||||||
if (this._currentRoom.textures != undefined && this._currentRoom.textures.length > 0) {
|
} catch (e) {
|
||||||
|
console.error(e);
|
||||||
|
localUserStore.setLastRoomUrl(null);
|
||||||
|
}
|
||||||
|
if (this._currentRoom != undefined && this._currentRoom.textures != undefined && this._currentRoom.textures.length > 0) {
|
||||||
//check if texture was changed
|
//check if texture was changed
|
||||||
if (this.localUser.textures.length === 0) {
|
if (this.localUser.textures.length === 0) {
|
||||||
this.localUser.textures = this._currentRoom.textures;
|
this.localUser.textures = this._currentRoom.textures;
|
||||||
@ -201,6 +207,7 @@ class ConnectionManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public async anonymousLogin(isBenchmark: boolean = false): Promise<void> {
|
public async anonymousLogin(isBenchmark: boolean = false): Promise<void> {
|
||||||
|
localUserStore.setAuthToken(null);
|
||||||
try {
|
try {
|
||||||
const data = await Axios.post(`${PUSHER_URL}/anonymLogin`).then((res) => res.data);
|
const data = await Axios.post(`${PUSHER_URL}/anonymLogin`).then((res) => res.data);
|
||||||
this.localUser = new LocalUser(data.userUuid, []);
|
this.localUser = new LocalUser(data.userUuid, []);
|
||||||
|
@ -120,12 +120,19 @@ class LocalUserStore {
|
|||||||
return localStorage.getItem(fullscreenKey) === "true";
|
return localStorage.getItem(fullscreenKey) === "true";
|
||||||
}
|
}
|
||||||
|
|
||||||
setLastRoomUrl(roomUrl: string): void {
|
setLastRoomUrl(roomUrl: string | null): void {
|
||||||
|
if (roomUrl) {
|
||||||
localStorage.setItem(lastRoomUrl, roomUrl.toString());
|
localStorage.setItem(lastRoomUrl, roomUrl.toString());
|
||||||
caches.open(cacheAPIIndex).then((cache) => {
|
caches.open(cacheAPIIndex).then((cache) => {
|
||||||
const stringResponse = new Response(JSON.stringify({ roomUrl }));
|
const stringResponse = new Response(JSON.stringify({ roomUrl }));
|
||||||
cache.put(`/${lastRoomUrl}`, stringResponse);
|
cache.put(`/${lastRoomUrl}`, stringResponse);
|
||||||
});
|
});
|
||||||
|
} else {
|
||||||
|
localStorage.removeItem(lastRoomUrl);
|
||||||
|
caches.open(cacheAPIIndex).then((cache) => {
|
||||||
|
cache.delete(`/${lastRoomUrl}`);
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
getLastRoomUrl(): string {
|
getLastRoomUrl(): string {
|
||||||
return (
|
return (
|
||||||
|
@ -18,7 +18,7 @@ export class Room {
|
|||||||
private _iframeAuthentication?: string;
|
private _iframeAuthentication?: string;
|
||||||
private _mapUrl: string | undefined;
|
private _mapUrl: string | undefined;
|
||||||
private _textures: CharacterTexture[] | undefined;
|
private _textures: CharacterTexture[] | undefined;
|
||||||
private instance: string | undefined;
|
// private instance: string | undefined;
|
||||||
private readonly _search: URLSearchParams;
|
private readonly _search: URLSearchParams;
|
||||||
|
|
||||||
private constructor(private roomUrl: URL) {
|
private constructor(private roomUrl: URL) {
|
||||||
@ -73,12 +73,13 @@ export class Room {
|
|||||||
const baseUrl = new URL(currentRoomUrl);
|
const baseUrl = new URL(currentRoomUrl);
|
||||||
|
|
||||||
const currentRoom = new Room(baseUrl);
|
const currentRoom = new Room(baseUrl);
|
||||||
let instance: string = "global";
|
// let instance: string = "global";
|
||||||
if (currentRoom.isPublic) {
|
// if (currentRoom.isPublic) {
|
||||||
instance = currentRoom.instance as string;
|
// instance = currentRoom.instance as string;
|
||||||
}
|
//}
|
||||||
|
|
||||||
baseUrl.pathname = "/_/" + instance + "/" + absoluteExitSceneUrl.host + absoluteExitSceneUrl.pathname;
|
// baseUrl.pathname = "/_/" + instance + "/" + absoluteExitSceneUrl.host + absoluteExitSceneUrl.pathname;
|
||||||
|
baseUrl.pathname = "/_/" + absoluteExitSceneUrl.host + absoluteExitSceneUrl.pathname;
|
||||||
if (absoluteExitSceneUrl.hash) {
|
if (absoluteExitSceneUrl.hash) {
|
||||||
baseUrl.hash = absoluteExitSceneUrl.hash;
|
baseUrl.hash = absoluteExitSceneUrl.hash;
|
||||||
}
|
}
|
||||||
@ -114,6 +115,8 @@ export class Room {
|
|||||||
* - In a private URL: [organizationId/worldId]
|
* - In a private URL: [organizationId/worldId]
|
||||||
*/
|
*/
|
||||||
public getInstance(): string {
|
public getInstance(): string {
|
||||||
|
return "";
|
||||||
|
/*
|
||||||
if (this.instance !== undefined) {
|
if (this.instance !== undefined) {
|
||||||
return this.instance;
|
return this.instance;
|
||||||
}
|
}
|
||||||
@ -129,6 +132,7 @@ export class Room {
|
|||||||
this.instance = match[1] + "/" + match[2];
|
this.instance = match[1] + "/" + match[2];
|
||||||
return this.instance;
|
return this.instance;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -300,6 +300,10 @@ export class GameScene extends DirtyScene {
|
|||||||
//remove loader in progress
|
//remove loader in progress
|
||||||
removeLoader(this);
|
removeLoader(this);
|
||||||
|
|
||||||
|
if (this.roomUrl == localUserStore.getLastRoomUrl()) {
|
||||||
|
localUserStore.setLastRoomUrl(null);
|
||||||
|
}
|
||||||
|
|
||||||
//display an error scene
|
//display an error scene
|
||||||
this.scene.start(ErrorSceneName, {
|
this.scene.start(ErrorSceneName, {
|
||||||
title: "Network error",
|
title: "Network error",
|
||||||
|
Loading…
Reference in New Issue
Block a user