123456789101112131415161718192021222324252627282930 |
- import { Socket, io } from 'socket.io-client';
- import { serverEndpoint } from '../constants';
- import type { ImmichAsset } from '../models/immich-asset';
- import { assets } from './assets';
- export const openWebsocketConnection = (accessToken: string) => {
- const websocket = io(serverEndpoint, {
- transports: ['websocket', 'polling'],
- reconnection: true,
- forceNew: true,
- autoConnect: true,
- extraHeaders: {
- Authorization: 'Bearer ' + accessToken,
- },
- });
- listenToEvent(websocket);
- };
- const listenToEvent = (socket: Socket) => {
- socket.on('on_upload_success', (data) => {
- const newUploadedAsset: ImmichAsset = JSON.parse(data);
- assets.update((assets) => [...assets, newUploadedAsset]);
- });
- socket.on('error', (e) => {
- console.log('Websocket Error', e);
- });
- };
|