mirror of
https://github.com/ChronosX88/Influence-cjdns.git
synced 2024-11-09 17:31:01 +00:00
Update API.md
This commit is contained in:
parent
3e14163bdd
commit
ba84a53fdb
@ -1,12 +1,12 @@
|
|||||||
# Протокол обмена.
|
# Протокол обмена.
|
||||||
|
|
||||||
## Структура сети:
|
## Структура сети
|
||||||
|
|
||||||
Связь между узлами - точка-точка
|
Связь между узлами - точка-точка
|
||||||
|
|
||||||
GUI - API ==== API - GUI
|
GUI - API ==== API - GUI
|
||||||
|
|
||||||
GUI - примитивная программа под Linux/Window/Android, которая умеет отображать сообщения и вызывать функции ядра (API).
|
GUI - примитивная программа под Linux/Window/Android, которая умеет отображать сообщения и вызывать функции ядра (API).
|
||||||
API - ядро мессенджера. Достаточно подключить *main.cpp*, чтобы вызывать функции ядра.
|
API - ядро мессенджера. Достаточно подключить *main.cpp*, чтобы вызывать функции ядра.
|
||||||
|
|
||||||
## Протокол обмена
|
## Протокол обмена
|
||||||
@ -27,7 +27,7 @@ API - ядро мессенджера. Достаточно подключить
|
|||||||
ответ:
|
ответ:
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{ "peerID":"*IPv6*", "action":"handshakeSuccess","status": 1 }
|
{ "peerID":"*IPv6*", "action":"handshakeSuccess", "status": true }
|
||||||
```
|
```
|
||||||
|
|
||||||
У другого абонента висит этот контакт в списке неавторизованных. Если он хочет его тоже добавить в друзья - отправляем ему свой handshake. Возможет вариант, когда сервер автоматически добавляет в друзья (публичный сервер для пересылки offline сообщений).
|
У другого абонента висит этот контакт в списке неавторизованных. Если он хочет его тоже добавить в друзья - отправляем ему свой handshake. Возможет вариант, когда сервер автоматически добавляет в друзья (публичный сервер для пересылки offline сообщений).
|
||||||
@ -37,31 +37,31 @@ API - ядро мессенджера. Достаточно подключить
|
|||||||
Структура сообщения в JSON:
|
Структура сообщения в JSON:
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{ "action":"send", "from":"адрес", "to":"адрес", "message":"сообщение", "timestamp":"время", "enctype":"" }
|
{ "peerSender":"*IPv6*", "peerReceiver":"*IPv6*", "action":"send", "msgID":"*ID сообщения в чате*","msgText":"*сообщение*", "timestamp":"*время*", "enctype":"" }
|
||||||
```
|
```
|
||||||
|
|
||||||
ответ:
|
ответ:
|
||||||
|
|
||||||
```json
|
```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
|
```json
|
||||||
{ "action":"ping" }
|
{ "peerID":"*IPv6*", "action":"ping" }
|
||||||
```
|
```
|
||||||
|
|
||||||
ответ:
|
ответ:
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{ "action":"pong" }
|
{ "peerID":"*IPv6*", "action":"pong" }
|
||||||
```
|
```
|
||||||
|
|
||||||
Если у нас есть сообщения для адреса и он онлайн (last_connect < 1 минуты), то передаём их
|
Если у нас есть сообщения для адреса и он онлайн (last_connect < 1 минуты), то передаём их
|
||||||
|
Loading…
Reference in New Issue
Block a user