From 545c381a6a5eb8a33ea197fd54428ce076492d5e Mon Sep 17 00:00:00 2001 From: Brainslug Date: Mon, 25 Mar 2024 11:38:20 +0100 Subject: [PATCH] SDK websocket handshake messages not emitted (#21956) Co-authored-by: Pascal Jufer --- .changeset/fair-horses-deliver.md | 5 +++++ sdk/src/realtime/composable.ts | 10 +++++----- 2 files changed, 10 insertions(+), 5 deletions(-) create mode 100644 .changeset/fair-horses-deliver.md diff --git a/.changeset/fair-horses-deliver.md b/.changeset/fair-horses-deliver.md new file mode 100644 index 0000000000..481e11f8c6 --- /dev/null +++ b/.changeset/fair-horses-deliver.md @@ -0,0 +1,5 @@ +--- +"@directus/sdk": patch +--- + +Fixed SDK websocket handshake messages not being emitted diff --git a/sdk/src/realtime/composable.ts b/sdk/src/realtime/composable.ts index c53ee293b0..86fb59614a 100644 --- a/sdk/src/realtime/composable.ts +++ b/sdk/src/realtime/composable.ts @@ -235,6 +235,11 @@ export function realtime(config: WebSocketConfig = {}) { ws.addEventListener('open', async (evt: Event) => { debug('info', `Connection open.`); + state = { code: 'open', connection: ws, firstMessage: true }; + reconnectState.attempts = 0; + reconnectState.active = false; + handleMessages(self); + if (config.authMode === 'handshake' && hasAuth(self)) { const access_token = await self.getToken(); @@ -262,12 +267,7 @@ export function realtime(config: WebSocketConfig = {}) { } } - state = { code: 'open', connection: ws, firstMessage: true }; - reconnectState.attempts = 0; - reconnectState.active = false; - eventHandlers['open'].forEach((handler) => handler.call(ws, evt)); - handleMessages(self); resolved = true; resolve(ws);