diff --git a/src/services/messagingSocket.js b/src/services/messagingSocket.js index 8a6fea7..381713f 100644 --- a/src/services/messagingSocket.js +++ b/src/services/messagingSocket.js @@ -12,18 +12,30 @@ function getWsUrl() { ); } +function parseWsConfig(rawUrl) { + const url = new URL(rawUrl); + + return { + origin: `${url.protocol}//${url.host}`, + path: `${url.pathname.replace(/\/$/, '')}/socket.io`, + }; +} + export function connectMessagingSocket() { - const wsUrl = getWsUrl(); + const rawUrl = getWsUrl(); const userId = getCurrentUserId(); - const token = getAccessToken(); + const token = getAccessToken(); - if (!wsUrl || !userId) return null; + if (!rawUrl || !userId) return null; if (socket?.connected) return socket; - socket = io(wsUrl, { + const { origin, path } = parseWsConfig(rawUrl); + + socket = io(origin, { + path, auth: { userId, token }, autoConnect: true, - reconnection: true, + reconnection: true }); return socket;