diff --git a/backend/routes/messaging.py b/backend/routes/messaging.py index a5b527b..8780edd 100644 --- a/backend/routes/messaging.py +++ b/backend/routes/messaging.py @@ -242,8 +242,28 @@ class MessaggingSocketManager: current_user = get_current_user_inner() if current_user: self.user_by_ws[websocket] = current_user.id + else: + await websocket.send_json({ + "type": "ping", + "data": { + "status": "error", + "error": { + "detail": "Failed to authorize", + "code": 401 + } + } + }) except HTTPException: - pass + await websocket.send_json({ + "type": "ping", + "data": { + "status": "error", + "error": { + "detail": "Failed to authorize", + "code": 401 + } + } + }) await websocket.send_json({"type": "ping", "data": {"status": "success"}}) elif type == "getMessages": try: diff --git a/frontend/src/ui/state.ts b/frontend/src/ui/state.ts index 27a8219..377d8ac 100644 --- a/frontend/src/ui/state.ts +++ b/frontend/src/ui/state.ts @@ -1,5 +1,5 @@ import { create } from "zustand"; -import type { Message, User, WebSocketMessage } from "../core/types"; +import type { Message, User } from "../core/types"; import { request } from "../core/websocket"; import { MessagePanel } from "./panels/MessagePanel"; import { PublicChatPanel } from "./panels/PublicChatPanel"; @@ -166,16 +166,14 @@ export const useAppState = create((set, get) => ({ } try { - const payload: WebSocketMessage = { + request({ type: "ping", credentials: { scheme: "Bearer", credentials: token }, data: {} - } - - request(payload).then(() => { + }).then(() => { console.log("Ping succeeded") }) } catch {} @@ -218,6 +216,19 @@ export const useAppState = create((set, get) => ({ currentPage: "chat" })); + try { + request({ + type: "ping", + credentials: { + scheme: "Bearer", + credentials: token + }, + data: {} + }).then(() => { + console.log("Ping succeeded") + }) + } catch {} + // Initialize notifications after successful credential restoration try { if (isSupported()) {