chore: rely on websockets for autosync if a websocket connection is open (#2672)
This commit is contained in:
@@ -3,4 +3,5 @@ export enum WebSocketsServiceEvent {
|
||||
NotificationAddedForUser = 'NotificationAddedForUser',
|
||||
MessageSentToUser = 'MessageSentToUser',
|
||||
UserInvitedToSharedVault = 'UserInvitedToSharedVault',
|
||||
ItemsChangedOnServer = 'ItemsChangedOnServer',
|
||||
}
|
||||
|
||||
@@ -55,6 +55,10 @@ export class WebSocketsService extends AbstractService<WebSocketsServiceEvent, D
|
||||
}
|
||||
}
|
||||
|
||||
isWebSocketConnectionOpen(): boolean {
|
||||
return this.webSocket?.readyState === WebSocket.OPEN
|
||||
}
|
||||
|
||||
public closeWebSocketConnection(): void {
|
||||
this.webSocket?.close()
|
||||
}
|
||||
@@ -62,6 +66,9 @@ export class WebSocketsService extends AbstractService<WebSocketsServiceEvent, D
|
||||
private onWebSocketMessage(messageEvent: MessageEvent) {
|
||||
const eventData = JSON.parse(messageEvent.data)
|
||||
switch (eventData.type) {
|
||||
case 'ITEMS_CHANGED_ON_SERVER':
|
||||
void this.notifyEvent(WebSocketsServiceEvent.ItemsChangedOnServer, eventData)
|
||||
break
|
||||
case 'USER_ROLES_CHANGED':
|
||||
void this.notifyEvent(WebSocketsServiceEvent.UserRoleMessageReceived, eventData)
|
||||
break
|
||||
|
||||
@@ -16,7 +16,7 @@ export interface SyncServiceInterface extends AbstractService<SyncEvent> {
|
||||
isDatabaseLoaded(): boolean
|
||||
onNewDatabaseCreated(): Promise<void>
|
||||
loadDatabasePayloads(): Promise<void>
|
||||
|
||||
beginAutoSyncTimer(): void
|
||||
resetSyncState(): void
|
||||
markAllItemsAsNeedingSyncAndPersist(): Promise<void>
|
||||
downloadFirstSync(waitTimeOnFailureMs: number, otherSyncOptions?: Partial<SyncOptions>): Promise<void>
|
||||
|
||||
Reference in New Issue
Block a user