StackSocket

Stack Socket

src/main/socket/stack.socket.ts · src/main/socket/socket-message.handler.ts

WebSocket з’єднання між Electron-додатком і Stack-сервером. Встановлюється одразу після логіну.


Команди від сервера

ПодіяДія
GET_LOGНадсилає лог-файл на сервер
RESTARTapp.quit() — закриває застосунок
UPDATE_SENDER_TYPEОновлює lady.findNew для TU
DROP_LADYВидаляє TU з ранера (через чергу)
SET_LADYДодає TU до ранера (через чергу)
SUPERVISOR_CONNECTEDНадсилає повний стан застосунку супервайзеру
SUPERVISOR_DISCONNECTEDПрибирає флаг супервайзера

Черга подій (DROP/SET LADY)

DROP_LADY і SET_LADY виконуються послідовно через чергу — щоб не виникали конфлікти при одночасній зміні TU.

Черга чекає на isSuccessInitialized = true (максимум 5 хвилин). Якщо ініціалізація не завершилась — кидає помилку.


SUPERVISOR_CONNECTED

Надсилає стиснутий APP_STATE:

  • ladies — список TU з isReady (socket) і isOnline
  • tasks — всі активні таски
  • favorites — всі фаворити

Реконект

При втраті з’єднання — автоматичний реконект. Після реконекту: syncLadiesOnReconnect() — порівнює список TU і синхронізує:

  • TU яких немає → DROP_LADY в чергу
  • Нові TU → SET_LADY в чергу
  • Фільтрує тільки status = AVAILABLE