Протокол может быть реализован поверх чего угодно: будь то простые файлы, принесённые на физическом носителе, ssh, ftp, http или что-нибудь ещё. Пока что на практике применяется только его http-версия.
Для обмена сообщениями в серверах используется понятие схемы параметров. Она представляет из себя строку, которая передаётся серверу через GET запрос, состоящую из слешей и того, что находится между ними. Пример: /u/e/echoname.100. Разные параметры этой схемы отвечают за разную выдачу или принятие информации сервером.
В настоящее время у нас используется схема /u/ (универсальная). /u/ - это запросы для обмена сообщениями, на которых и строится вся синхронизация.
О кодах ответов (в том числе об ошибках) ноды можно прочитать здесь.
Вся синхронизация односторонняя. Две ноды просто собирают друг у друга сообщения. Пойнты же, наоборот, проталкивают свои письма, которые нода добавляет в общую БД сети, одобряя их (или не делает, не одобряя).
Список идентификаторов сообщений из заданных эхоконференций, в формате:
эха
msgid
msgid
msgid
эха
msgid
Отличить эху от id очень просто - в имени эхи есть точка, а в msgid - нет.
Бандл - основной способ получения сообщений на клиенте и при синхронизации серверов. Формат указан на странице стандартов.
Передаёт пользовательское сообщение на ноду в виде запакованного текста base64 определённого формата. (если его передавать через GET-запрос, то оно там уже обязано быть base64-urlsafe).
pauth
здесь - поинтовая строка авторизации (пароль), tmsg
- закодированное base64 сообщение (см. msgline, стандарты). В случае POST параметры называются так же: pauth
и tmsg
.
Максимальный размер base64-кодированного сообщения - 87382 байт (соответствует 64КБ для исходного файла).
Нода должна вернуть в ответ строку начинающуюся с msg ok
.
Выдаёт файл определённой эхоконференции для просмотра вручную. В обмене не применяется.
Выдаёт единственное сообщение (опять см. стандарты) в "сыром" виде (без base64). В обмене также не используется, служит для отладки.