Відкритий протокол обміну даними MyChat

Офіційний опис

Copyright (c) 2012-2025 by Alexey Pikurov / Network Software Solutions

 

Усі команди розділені на два типи: "клієнт - сервер" и "сервер - клієнт". Команди першого типу починаються із префіксом "cs" (Client->Server), другого — навпаки — "sc" (Server->Client). Назви номінальні, насправді замість цих текстових констант будуть шістнадцяткові текстові коди.


Кожна команда складається із декількох частин:

  1. MagicString - 2 байти #23#6
  2. ідентифікатор команди, HEX код в текстовому вигляді, 4 байти (закодовано 2 байти);
  3. прапорці, HEX-код в текстовому вигляді, 2 байти (закодовано 1 байт);
    1-й біт: пакет стиснутий GZIP-ом або ні. "1" - стиснутий, "0" - ні.
    2-й, 3-й і 4-й біти: клас команди відправника. Усталено - "000" (ядро програми), залишається без змін і після обробки команди цей код висилається назад, разом із результатом, якщо такий є. Класами команд можуть бути:
    "000" - ядро програми;
    "001" - текстова консоль;
    "010" - Plugins API;
    "100" - Scripts API;
    "011" - Integration API;
    "111" - Custom API (5.2+);
    "110", "101" - зарезервовано для майбутніх розширень;
    біти 5, 6, 7 і 8 - зарезервовані;
  4. безпосередньо сам JSON об'єкт. Якщо він був упакований GZIP, то об'єкт буде текстовим рядком, закодованим у BASE64, якщо стиснення немає - буде рядок у відкритому виглядв.
  5. CRLF (#13#10) - заключний блок (2 байти).

 

Усі параметри в командах номінальні та надані для прикладу. Всі параметри обов'язкові.

 

Повний протокол знаходиться на офіційному сайті та оновлюється від версії до версії.