Stack Socket
src/main/socket/stack.socket.ts · src/main/socket/socket-message.handler.ts
WebSocket з’єднання між Electron-додатком і Stack-сервером. Встановлюється одразу після логіну.
Команди від сервера
| Подія | Дія |
|---|---|
GET_LOG | Надсилає лог-файл на сервер |
RESTART | app.quit() — закриває застосунок |
UPDATE_SENDER_TYPE | Оновлює lady.findNew для анкети |
DROP_LADY | Видаляє анкету з ранера (через чергу) |
SET_LADY | Додає анкету до ранера (через чергу) |
SUPERVISOR_CONNECTED | Надсилає повний стан застосунку супервайзеру |
SUPERVISOR_DISCONNECTED | Прибирає флаг супервайзера |
Черга подій (DROP/SET LADY)
DROP_LADY і SET_LADY виконуються послідовно через чергу — щоб не виникали конфлікти при одночасній зміні анкет.
Черга чекає на isSuccessInitialized = true (максимум 5 хвилин). Якщо ініціалізація не завершилась — кидає помилку.
SUPERVISOR_CONNECTED
Надсилає стиснутий APP_STATE:
ladies— список анкет зisReady(socket) іisOnlinetasks— всі активні таскиfavorites— всі фаворити
Реконект
При втраті з’єднання — автоматичний реконект. Після реконекту: syncLadiesOnReconnect() — порівнює список анкет і синхронізує:
- Анкети яких немає →
DROP_LADYв чергу - Нові анкети →
SET_LADYв чергу - Фільтрує тільки
status = AVAILABLE