31 lines
583 B
TypeScript
31 lines
583 B
TypeScript
import { io, Socket } from 'socket.io-client';
|
|
|
|
let socket: Socket | null = null;
|
|
|
|
export function getSocket(): Socket {
|
|
if (!socket) {
|
|
socket = io('/', {
|
|
path: '/socket.io',
|
|
auth: {
|
|
token: localStorage.getItem('access_token'),
|
|
},
|
|
autoConnect: false,
|
|
});
|
|
}
|
|
return socket;
|
|
}
|
|
|
|
export function connectSocket() {
|
|
const s = getSocket();
|
|
if (!s.connected) {
|
|
s.auth = { token: localStorage.getItem('access_token') };
|
|
s.connect();
|
|
}
|
|
}
|
|
|
|
export function disconnectSocket() {
|
|
if (socket?.connected) {
|
|
socket.disconnect();
|
|
}
|
|
}
|