mirror of
https://github.com/immich-app/immich.git
synced 2025-06-01 04:36:19 -04:00
31 lines
773 B
TypeScript
31 lines
773 B
TypeScript
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: ['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);
|
|
});
|
|
};
|