diff --git a/API.md b/API.md index 8ec7a0a..3e6e3b7 100644 --- a/API.md +++ b/API.md @@ -38,7 +38,10 @@ GUI - примитивная программа под Linux/Window/Android, к ``` Когда один отправил запрос - то второй может отправить свой ключ и тогда сервера смогут общаться друг с другом. -2. Отправка сообщения: +### Отправка сообщения + +Структура сообщения в JSON: + ```json { "action":"send", "from":"адрес", "to":"адрес", "message":"сообщение", "timestamp":"время", "enctype":"", "key":"" } ``` @@ -50,8 +53,10 @@ GUI - примитивная программа под Linux/Window/Android, к Если нет ответа, то сохраняем сообщение у себя в истории, чтобы потом переотправить. `status==1` - доставлено, другой - недоставлено (помечаем как недоставлено -3. Пинг - проверка онлайн +### Пинг - проверка онлайна + Если прошло время больше чем last_connect + 1 минута, от отправляем запрос + ```json { "action":"ping" } ``` @@ -60,21 +65,24 @@ GUI - примитивная программа под Linux/Window/Android, к { "action":"pong" } ``` -4. Если у нас есть сообщения для адреса и он онлайн (last_connect < 1 минуты), то передаём их +Если у нас есть сообщения для адреса и он онлайн (last_connect < 1 минуты), то передаём их Если для этого адрес в базе есть недоставленные сообщения, то отправляем такой запрос: + ```json { "action": "history", "messages":[{},{},{}...] } ``` -ответ +ответ: ```json { "status":[1,1,1,0,1] } ``` В ответ приходит массив с 1 или 0. Если 1 - сообщение сохранено успешно, 0 - ошибка и его нужно потом переотправить. -5. Отправить сообщение для другого абонента (это нужно чтобы отправлять тем, кто в offline) -Если человек, которому мы отправляем сообщение offline - то во-первых оно сохраняется у себя на сервере, для последующей отправки. -Во-вторых, можно попросить какого-то друга его переотправить. Для этого выбираем случайно несколько друзей из списка контактов, у которых can_resend == 1 и отправляем им запрос. +### Отправление сообщения для другого абонента (это нужно чтобы отправлять тем, кто в offline) + +Если человек, которому мы отправляем сообщение offline - то, во-первых, оно сохраняется у себя на сервере, для последующей отправки. +Во-вторых, можно попросить какого-то друга его переотправить. Для этого выбираем случайно несколько друзей из списка контактов, у которых `can_resend == 1` и отправляем им запрос. Для ретрансляции можно также использовать свой сервер в интернете, нужно просто его добавить в контакты. + ```json { "action":"resend", ... } ```