diff --git a/API.md b/API.md index ac7e3f2..6f4d964 100644 --- a/API.md +++ b/API.md @@ -13,7 +13,7 @@ GUI - примитивная программа под Linux/Window/Android, к На сервере также хранится история переписки. У сервера есть список контактов (друзей), в формате: -``` +```json { "адрес1": { nick: "", last_online: "", last_connect: "", can_resend: 1, key: "", other_info:... } ... @@ -29,21 +29,21 @@ GUI - примитивная программа под Linux/Window/Android, к 1. Добавление в друзья Используется, чтобы установить связь с контактом. Для этого запрашиваем у него ключ доступа, предварительно отправив свой. -``` +```json { action: "handshake", key: "пароль" } ``` ответ -``` +```json { status: 1 } ``` Когда один отправил запрос - то второй может отправить свой ключ и тогда сервера смогут общаться друг с другом. 2. Отправка сообщения: -``` +```json { action:"send", from: "адрес", to: "адрес", message: "сообщение", timestamp: "время", enctype: "", key: "" } ``` ответ: -``` +```json { status: 1 } ``` Сообщение может быть зашифровано, метод шифрования в поле enctype. @@ -52,21 +52,21 @@ GUI - примитивная программа под Linux/Window/Android, к 3. Пинг - проверка онлайн Если прошло время больше чем last_connect + 1 минута, от отправляем запрос -``` +```json { action: "ping" } ``` ответ: -``` +```json { action: "pong" } ``` 4. Если у нас есть сообщения для адреса и он онлайн (last_connect < 1 минуты), то передаём их Если для этого адрес в базе есть недоставленные сообщения, то отправляем такой запрос: -``` +```json { action: "history", messages:[{},{},{}...] } ``` ответ -``` +```json { status:[1,1,1,0,1] } ``` В ответ приходит массив с 1 или 0. Если 1 - сообщение сохранено успешно, 0 - ошибка и его нужно потом переотправить. @@ -75,12 +75,12 @@ GUI - примитивная программа под Linux/Window/Android, к Если человек, которому мы отправляем сообщение offline - то во-первых оно сохраняется у себя на сервере, для последующей отправки. Во-вторых, можно попросить какого-то друга его переотправить. Для этого выбираем случайно несколько друзей из списка контактов, у которых can_resend == 1 и отправляем им запрос. Для ретрансляции можно также использовать свой сервер в интернете, нужно просто его добавить в контакты. -``` +```json { action: "resend", ... } ``` Параметры такие же как и для send ответ -``` +```json { status: 1 } ``` Если status: 0 - то эта нода не желает пересылать сообщения и ей повторно отправлять не нужно.