diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index 8fde057..30bf38c 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -435,10 +435,15 @@ function App(): JSX.Element { return } - let wsUrl = import.meta.env.CUSTOM_VITE_WS_URL || 'wss://excalidraw.forkless.com' - if (wsUrl && !wsUrl.startsWith('ws://') && !wsUrl.startsWith('wss://')) { - wsUrl = 'wss://' + wsUrl + let rawUrl = import.meta.env.CUSTOM_VITE_WS_URL || 'wss://excalidraw.forkless.com' + try { + const parsed = new URL(rawUrl.startsWith('ws') ? rawUrl.replace(/^ws/, 'http') : rawUrl) + rawUrl = 'wss://' + parsed.host + } catch { + // Bare hostname/IP — prepend wss:// + rawUrl = 'wss://' + rawUrl } + const wsUrl = rawUrl websocketRef.current = new WebSocket(wsUrl)