mirror of
https://github.com/open-webui/open-webui
synced 2025-06-26 18:26:48 +00:00
57 lines
1.4 KiB
TypeScript
57 lines
1.4 KiB
TypeScript
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']);
|
|
});
|
|
};
|