Skip to content

Latest commit

 

History

History
53 lines (31 loc) · 3.81 KB

protocol.md

File metadata and controls

53 lines (31 loc) · 3.81 KB

Api обмена IDEC и ii, протокол

Протокол может быть реализован поверх чего угодно: будь то простые файлы, принесённые на физическом носителе, ssh, ftp, http или что-нибудь ещё. Пока что на практике применяется только его http-версия.

Схема параметров

Для обмена сообщениями в серверах используется понятие схемы параметров. Она представляет из себя строку, которая передаётся серверу через GET запрос, состоящую из слешей и того, что находится между ними. Пример: /u/e/echoname.100. Разные параметры этой схемы отвечают за разную выдачу или принятие информации сервером.

В настоящее время у нас используется схема /u/ (универсальная). /u/ - это запросы для обмена сообщениями, на которых и строится вся синхронизация.

О кодах ответов (в том числе об ошибках) ноды можно прочитать здесь.

Обработчики /u/

Вся синхронизация односторонняя. Две ноды просто собирают друг у друга сообщения. Пойнты же, наоборот, проталкивают свои письма, которые нода добавляет в общую БД сети, одобряя их (или не делает, не одобряя).

/u/e/эха.номер/эха.номер/эха.номер...

Список идентификаторов сообщений из заданных эхоконференций, в формате:

эха
msgid
msgid
msgid
эха
msgid

Отличить эху от id очень просто - в имени эхи есть точка, а в msgid - нет.

/u/m/msgid/msgid/msgid...

Бандл - основной способ получения сообщений на клиенте и при синхронизации серверов. Формат указан на странице стандартов.

GET /u/point/pauth/tmsg или POST /u/point

Передаёт пользовательское сообщение на ноду в виде запакованного текста base64 определённого формата. (если его передавать через GET-запрос, то оно там уже обязано быть base64-urlsafe).

pauth здесь - поинтовая строка авторизации (пароль), tmsg - закодированное base64 сообщение (см. msgline, стандарты). В случае POST параметры называются так же: pauth и tmsg.

Максимальный размер base64-кодированного сообщения - 87382 байт (соответствует 64КБ для исходного файла).

Нода должна вернуть в ответ строку начинающуюся с msg ok.

Другие схемы

/e/эха.номер

Выдаёт файл определённой эхоконференции для просмотра вручную. В обмене не применяется.

/m/msgid

Выдаёт единственное сообщение (опять см. стандарты) в "сыром" виде (без base64). В обмене также не используется, служит для отладки.