From fe8088c258c066c0ceb55f37a373310db51cfa27 Mon Sep 17 00:00:00 2001 From: ChronosX88 Date: Tue, 15 May 2018 14:17:46 +0300 Subject: [PATCH] Update API.md --- doc/ru/API.md | 62 +++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 53 insertions(+), 9 deletions(-) diff --git a/doc/ru/API.md b/doc/ru/API.md index 59ba298..6435d8a 100644 --- a/doc/ru/API.md +++ b/doc/ru/API.md @@ -21,13 +21,20 @@ API - ядро мессенджера. Достаточно подключить Используется, чтобы установить связь с контактом. Тот кто хочет добавиться в друзья - отправляет такой запрос. ```json -{ "peerID":"*IPv6 контакта*", "action":"handshake" } +{ + "peerID":"*IPv6 контакта*", + "action":"handshake" +} ``` ответ: ```json -{ "peerID":"*IPv6*", "action":"handshakeSuccess", "status": true } +{ + "peerID":"*IPv6*", + "action":"handshakeSuccess", + "status": true +} ``` У другого абонента висит этот контакт в списке неавторизованных. Если он хочет его тоже добавить в друзья - отправляем ему свой handshake. Возможет вариант, когда сервер автоматически добавляет в друзья (публичный сервер для пересылки offline сообщений). @@ -37,13 +44,28 @@ API - ядро мессенджера. Достаточно подключить Структура сообщения в JSON: ```json -{ "peerSender":"*IPv6*", "peerReceiver":"*IPv6*", "action":"send", "chatID":"*Идентификатор чата, у обоих он одинаковый*", "msgID":"*ID сообщения в чате*","msgText":"*сообщение*", "timestamp":"*время*", "enctype":"" } +{ + "peerSender":"*IPv6*", + "peerReceiver":"*IPv6*", + "action":"send", + "chatID":"*Идентификатор чата, у обоих он одинаковый*", + "msgID":"*ID сообщения в чате*","msgText":"*сообщение*", + "timestamp":"*время*", + "enctype":"" +} ``` ответ: ```json -{ "peerSender":"*IPv6 отправителя, т.е. кому доставили сообщение*", "peerReceiver":"*IPv6 получателя, т.е. кто отправил сообщение*", "action":"sendSuccess", "chatID":"*Идентификатор чата, у обоих он одинаковый*", "msgID":"*ID сообщения, которое доставлено, в чате*", "status": true } +{ + "peerSender":"*IPv6 отправителя, т.е. кому доставили сообщение*", + "peerReceiver":"*IPv6 получателя, т.е. кто отправил сообщение*", + "action":"sendSuccess", + "chatID":"*Идентификатор чата, у обоих он одинаковый*", + "msgID":"*ID сообщения, которое доставлено, в чате*", + "status": true +} ``` Сообщение может должно быть зашифровано, метод шифрования указан в поле `enctype`. @@ -55,20 +77,29 @@ API - ядро мессенджера. Достаточно подключить Если прошло время last_connect > 1 минуты, от отправляем запрос ```json -{ "peerID":"*IPv6*", "action":"ping" } +{ + "peerID":"*IPv6*", + "action":"ping" +} ``` ответ: ```json -{ "peerID":"*IPv6*", "action":"pong" } +{ + "peerID":"*IPv6*", + "action":"pong" +} ``` Если у нас есть сообщения для адреса и он онлайн (last_connect < 1 минуты), то передаём их. Если для этого адрес в базе есть недоставленные сообщения, то отправляем такой запрос: ```json -{ "action":"history", "messages":[{},{},{}...] } +{ + "action":"history", + "messages":[{},{},{}...] +} ``` ответ: @@ -86,13 +117,26 @@ API - ядро мессенджера. Достаточно подключить Для ретрансляции можно также использовать свой сервер в интернете, нужно просто его добавить в контакты. ```json -{ "peerSender":"*IPv6*", "peerReceiver":"*IPv6*", "action":"resend", "chatID":"*Идентификатор чата, у обоих он одинаковый*", "msgID":"*ID сообщения в чате*","msgText":"*сообщение*", "timestamp":"*время*", "enctype":"" } +{ + "peerSender":"*IPv6*", + "peerReceiver":"*IPv6*", + "action":"resend", + "chatID":"*Идентификатор чата, у обоих он одинаковый*", + "msgID":"*ID сообщения в чате*", + "msgText":"*сообщение*", + "timestamp":"*время*", + "enctype":"" +} ``` Ответ: ```json -{ "peerID":"*IPv6*", "action":"resendSuccess","status":true } +{ + "peerID":"*IPv6*", + "action":"resendSuccess", + "status":true +} ``` Если `status == 0` - то эта нода не желает пересылать сообщения и ей повторно отправлять не нужно.