From 214f5b785d72eee42a14e6583ccd4de109489533 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karol=20S=C3=B3jko?= Date: Mon, 4 Dec 2023 14:37:38 +0100 Subject: [PATCH] chore: re-establish websocket connection upon connection close (#2673) --- .../src/Domain/Api/WebsocketsService.ts | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/packages/services/src/Domain/Api/WebsocketsService.ts b/packages/services/src/Domain/Api/WebsocketsService.ts index 301da5f4a..777cb6cb7 100644 --- a/packages/services/src/Domain/Api/WebsocketsService.ts +++ b/packages/services/src/Domain/Api/WebsocketsService.ts @@ -6,6 +6,7 @@ import { StorageServiceInterface } from '../Storage/StorageServiceInterface' import { InternalEventBusInterface } from '../Internal/InternalEventBusInterface' import { AbstractService } from '../Service/AbstractService' import { StorageKey } from '../Storage/StorageKeys' +import { Result } from '@standardnotes/domain-core' export class WebSocketsService extends AbstractService { private webSocket?: WebSocket @@ -36,22 +37,24 @@ export class WebSocketsService extends AbstractService { + async startWebSocketConnection(): Promise> { if (!this.webSocketUrl) { - return + return Result.fail('WebSocket URL is not set') } const webSocketConectionToken = await this.createWebSocketConnectionToken() if (webSocketConectionToken === undefined) { - return + return Result.fail('Failed to create WebSocket connection token') } try { this.webSocket = new WebSocket(`${this.webSocketUrl}?authToken=${webSocketConectionToken}`) this.webSocket.onmessage = this.onWebSocketMessage.bind(this) this.webSocket.onclose = this.onWebSocketClose.bind(this) - } catch (e) { - console.error('Error starting WebSocket connection', e) + + return Result.ok() + } catch (error) { + return Result.fail(`Error starting WebSocket connection: ${(error as Error).message}`) } } @@ -87,7 +90,9 @@ export class WebSocketsService extends AbstractService {