Відкритий протокол корпоративного месенджера MyChat
Відкритий протокол обміну даними MyChat
Офіційний опис
Copyright (c) 2012-2025 by Alexey Pikurov / Network Software Solutions
Усі команди розділені на два типи: "клієнт - сервер" и "сервер - клієнт". Команди першого типу починаються із префіксом "cs" (Client->Server), другого — навпаки — "sc" (Server->Client). Назви номінальні, насправді замість цих текстових констант будуть шістнадцяткові текстові коди.
Кожна команда складається із декількох частин:
- MagicString - 2 байти #23#6
- ідентифікатор команди, HEX код в текстовому вигляді, 4 байти (закодовано 2 байти);
- прапорці, 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 - зарезервовані; - безпосередньо сам JSON об'єкт. Якщо він був упакований GZIP, то об'єкт буде текстовим рядком, закодованим у BASE64, якщо стиснення немає - буде рядок у відкритому виглядв.
- CRLF (#13#10) - заключний блок (2 байти).
Усі параметри в командах номінальні та надані для прикладу. Всі параметри обов'язкові.
Повний протокол знаходиться на офіційному сайті та оновлюється від версії до версії.