File size: 870 Bytes
24727a3
 
dee3ea7
24727a3
 
 
 
 
 
 
4b59f7c
 
 
 
 
 
 
 
 
 
 
24727a3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import { io } from 'socket.io-client'

const SOCKET_URL = import.meta.env.VITE_SOCKET_URL || undefined

let socket = null
let currentToken = null

export function connectSocket(token) {
  if (socket?.connected && currentToken === token) return socket
  if (socket) socket.disconnect()
  socket = io(SOCKET_URL, {
    auth: { token },
    transports: ['websocket', 'polling'],
    reconnection: true,
    reconnectionAttempts: Infinity,
    reconnectionDelay: 1000,
    reconnectionDelayMax: 5000,
  })
  socket.on('connect_error', (err) => {
    console.warn('Socket connection error:', err.message)
  })
  currentToken = token
  return socket
}

export function getSocket() {
  return socket
}

export function disconnectSocket() {
  if (socket) { socket.disconnect(); socket = null; currentToken = null }
}

export function getCurrentToken() {
  return currentToken
}