system chat

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 для анкети
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) і isOnline
  • tasks — всі активні таски
  • favorites — всі фаворити

Реконект

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

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