/
TestEntry
/
mt-app
Обзор
Документация
Войти
/
TestEntry
/
mt-app
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
projects/mt-core/src/lib/utils/app-instance-id.util.ts
24 строки
818 B
PontiyPirat
feat(mt-core): app instance id, resilient UUIDs, websocket handshake cleanup
02 май 2026, 17:56
02 май 2026, 17:56
539c8d9
Код
Авторство
О чём код?
import { createUuidV4 } from './device-identity.util'; const STORAGE_KEY = 'mt.core.appInstanceId'; /** * Id одной «копии» SPA в этой вкладке: в `sessionStorage`, переживает перезагрузку и HMR. * Другая вкладка — другой id. Бэкенд может хранить мапу `user + appInstanceId → socket` * и при новом коннекте с тем же id отключать предыдущий сокет. */ export function getOrCreateAppInstanceId(): string { try { if (typeof sessionStorage === 'undefined') { return createUuidV4(); } let id = sessionStorage.getItem(STORAGE_KEY); if (!id) { id = createUuidV4(); sessionStorage.setItem(STORAGE_KEY, id); } return id; } catch { return createUuidV4(); } }