Spaces:
Paused
Paused
| import { io } from 'socket.io-client'; | |
| import { socket, activeUserIds, USAGE_POOL } from '$lib/stores'; | |
| import { WEBUI_BASE_URL } from '$lib/constants'; | |
| export const setupSocket = async (enableWebsocket) => { | |
| const _socket = io(`${WEBUI_BASE_URL}` || undefined, { | |
| reconnection: true, | |
| reconnectionDelay: 1000, | |
| reconnectionDelayMax: 5000, | |
| randomizationFactor: 0.5, | |
| path: '/ws/socket.io', | |
| transports: enableWebsocket ? ['websocket'] : ['polling', 'websocket'], | |
| auth: { token: localStorage.token } | |
| }); | |
| await socket.set(_socket); | |
| _socket.on('connect_error', (err) => { | |
| console.log('connect_error', err); | |
| }); | |
| _socket.on('connect', () => { | |
| console.log('connected', _socket.id); | |
| }); | |
| _socket.on('reconnect_attempt', (attempt) => { | |
| console.log('reconnect_attempt', attempt); | |
| }); | |
| _socket.on('reconnect_failed', () => { | |
| console.log('reconnect_failed'); | |
| }); | |
| _socket.on('disconnect', (reason, details) => { | |
| console.log(`Socket ${_socket.id} disconnected due to ${reason}`); | |
| if (details) { | |
| console.log('Additional details:', details); | |
| } | |
| }); | |
| _socket.on('user-list', (data) => { | |
| console.log('user-list', data); | |
| activeUserIds.set(data.user_ids); | |
| }); | |
| _socket.on('usage', (data) => { | |
| console.log('usage', data); | |
| USAGE_POOL.set(data['models']); | |
| }); | |
| }; | |