From ba84a53fdbb290223d57202060680ff5ca46efa4 Mon Sep 17 00:00:00 2001 From: ChronosX88 Date: Sun, 13 May 2018 20:04:00 +0300 Subject: [PATCH] Update API.md --- doc/ru/API.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/doc/ru/API.md b/doc/ru/API.md index 9ac911a..706678c 100644 --- a/doc/ru/API.md +++ b/doc/ru/API.md @@ -1,12 +1,12 @@ # Протокол обмена. -## Структура сети: +## Структура сети Связь между узлами - точка-точка GUI - API ==== API - GUI -GUI - примитивная программа под Linux/Window/Android, которая умеет отображать сообщения и вызывать функции ядра (API). +GUI - примитивная программа под Linux/Window/Android, которая умеет отображать сообщения и вызывать функции ядра (API). API - ядро мессенджера. Достаточно подключить *main.cpp*, чтобы вызывать функции ядра. ## Протокол обмена @@ -27,7 +27,7 @@ API - ядро мессенджера. Достаточно подключить ответ: ```json -{ "peerID":"*IPv6*", "action":"handshakeSuccess","status": 1 } +{ "peerID":"*IPv6*", "action":"handshakeSuccess", "status": true } ``` У другого абонента висит этот контакт в списке неавторизованных. Если он хочет его тоже добавить в друзья - отправляем ему свой handshake. Возможет вариант, когда сервер автоматически добавляет в друзья (публичный сервер для пересылки offline сообщений). @@ -37,31 +37,31 @@ API - ядро мессенджера. Достаточно подключить Структура сообщения в JSON: ```json -{ "action":"send", "from":"адрес", "to":"адрес", "message":"сообщение", "timestamp":"время", "enctype":"" } +{ "peerSender":"*IPv6*", "peerReceiver":"*IPv6*", "action":"send", "msgID":"*ID сообщения в чате*","msgText":"*сообщение*", "timestamp":"*время*", "enctype":"" } ``` ответ: ```json -{ "status": 1 } +{ "peerSender":"*IPv6 отправителя, т.е. кому доставили сообщение*", "peerReceiver":"*IPv6 получателя, т.е. кто отправил сообщение*", "action":"sendSuccess", "msgID":"*ID сообщения, которое доставлено, в чате*", "status": true } ``` -Сообщение может быть зашифровано, метод шифрования в поле enctype. +Сообщение может должно быть зашифровано, метод шифрования указан в поле `enctype`. Если нет ответа, то сохраняем сообщение у себя в истории, чтобы потом переотправить. -`status==1` - доставлено, другой - недоставлено (помечаем как недоставлено +`status == true` - доставлено. ### Пинг - проверка онлайна -Если прошло время больше чем last_connect + 1 минута, от отправляем запрос +Если прошло время last_connect > 1 минуты, от отправляем запрос ```json -{ "action":"ping" } +{ "peerID":"*IPv6*", "action":"ping" } ``` ответ: ```json -{ "action":"pong" } +{ "peerID":"*IPv6*", "action":"pong" } ``` Если у нас есть сообщения для адреса и он онлайн (last_connect < 1 минуты), то передаём их