Updated documentation

This commit is contained in:
ChronosX88 2018-05-16 14:46:59 +03:00
parent 945beac311
commit a2d82beedd

View File

@ -1,4 +1,4 @@
# Общая документация # Общая документация мессенджера HyperboriaIM
## Структура мессенджера ## Структура мессенджера
@ -6,7 +6,7 @@
GUI - API ==== API - GUI GUI - API ==== API - GUI
GUI - примитивная программа под Linux/Windows/Android, которая умеет отображать сообщения и вызывать функции ядра (API). GUI - примитивная программа под Linux/Windows/Android, которая умеет отображать сообщения и вызывать функции ядра (API).
API - ядро мессенджера. Достаточно подключить *main.hpp*, чтобы вызывать функции ядра. Такая структура позволяет писать какие угодно клиенты. API - ядро мессенджера. Достаточно подключить *main.hpp*, чтобы вызывать функции ядра. Такая структура позволяет писать какие угодно клиенты.
## Протокол обмена ## Протокол обмена
@ -21,19 +21,19 @@ API - ядро мессенджера. Достаточно подключить
Используется, чтобы установить связь с контактом. Тот кто хочет добавиться в друзья - отправляет такой запрос: Используется, чтобы установить связь с контактом. Тот кто хочет добавиться в друзья - отправляет такой запрос:
```json ```json
{ {
 "action":"handshake", "action":"handshake",
 "peerID":"*IPv6 контакта*" "peerID":"*IPv6 контакта*"
} }
``` ```
Ответ: Ответ:
```json ```json
{   {  
 "action":"handshakeSuccess", "action":"handshakeSuccess",
 "peerID":"*IPv6*", "peerID":"*IPv6*",
 "status": true "status": true
} }
``` ```
@ -44,25 +44,25 @@ API - ядро мессенджера. Достаточно подключить
Структура сообщения в JSON: Структура сообщения в JSON:
```json ```json
{ {
"action":"send", "action":"send",
"peerSender":"*IPv6*", "peerSender":"*IPv6*",
"peerReceiver":"*IPv6*", "peerReceiver":"*IPv6*",
"chatID":"*Идентификатор чата, у обоих он одинаковый*", "chatID":"*Идентификатор чата, у обоих он одинаковый*",
"msgID":"*ID сообщения в чате*","msgText":"*сообщение*", "msgID":"*ID сообщения в чате*","msgText":"*сообщение*",
"timestamp":"*время*", "timestamp":"*время*",
"enctype":"" "enctype":""
} }
``` ```
ответ: ответ:
```json ```json
{   {  
"action":"sendSuccess", "action":"sendSuccess",
 "peerSender":"*IPv6 отправителя, т.е. кому доставили сообщение*", "peerSender":"*IPv6 отправителя, т.е. кому доставили сообщение*",
"peerReceiver":"*IPv6 получателя, т.е. кто отправил сообщение*", "peerReceiver":"*IPv6 получателя, т.е. кто отправил сообщение*",
 "chatID":"*Идентификатор чата, у обоих он одинаковый*", "chatID":"*Идентификатор чата, у обоих он одинаковый*",
"msgID":"*ID сообщения, которое доставлено, в чате*", "msgID":"*ID сообщения, которое доставлено, в чате*",
"status": true "status": true
} }
@ -77,18 +77,18 @@ API - ядро мессенджера. Достаточно подключить
Если прошло время last_connect > 1 минуты, от отправляем запрос Если прошло время last_connect > 1 минуты, от отправляем запрос
```json ```json
{ {
 "action":"ping", "action":"ping",
 "peerID":"*IPv6*" "peerID":"*IPv6*"
} }
``` ```
ответ: ответ:
```json ```json
{ {
 "action":"pong", "action":"pong",
 "peerID":"*IPv6*" "peerID":"*IPv6*"
} }
``` ```
@ -96,18 +96,18 @@ API - ядро мессенджера. Достаточно подключить
Если для этого адрес в базе есть недоставленные сообщения, то отправляем такой запрос: Если для этого адрес в базе есть недоставленные сообщения, то отправляем такой запрос:
```json ```json
{ {
"action":"history", "action":"history",
"messages":[{},{},{}...] "messages":[{},{},{}...]
} }
``` ```
ответ: ответ:
```json ```json
{ {
 "action":"historySuccess", "action":"historySuccess",
 "status":[true,true,true,false,true] "status":[true,true,true,false,true]
} }
``` ```
@ -120,7 +120,7 @@ API - ядро мессенджера. Достаточно подключить
Для ретрансляции можно также использовать свой сервер в интернете, нужно просто его добавить в контакты. Для ретрансляции можно также использовать свой сервер в интернете, нужно просто его добавить в контакты.
```json ```json
{ {
"peerSender":"*IPv6*", "peerSender":"*IPv6*",
"peerReceiver":"*IPv6*", "peerReceiver":"*IPv6*",
"action":"resend", "action":"resend",
@ -128,17 +128,17 @@ API - ядро мессенджера. Достаточно подключить
"msgID":"*ID сообщения в чате*", "msgID":"*ID сообщения в чате*",
"msgText":"*сообщение*", "msgText":"*сообщение*",
"timestamp":"*время*", "timestamp":"*время*",
"enctype":"" "enctype":""
} }
``` ```
Ответ: Ответ:
```json ```json
{ {
"peerID":"*IPv6*", "peerID":"*IPv6*",
"action":"resendSuccess", "action":"resendSuccess",
"status":true "status":true
} }
``` ```