mirror of
https://github.com/ChronosX88/Influence-cjdns.git
synced 2024-11-30 02:02:21 +00:00
Update main.md
This commit is contained in:
parent
7100d5f9b5
commit
128e648ab9
@ -1,22 +1,13 @@
|
||||
# Общая документация мессенджера Influence
|
||||
|
||||
## Структура мессенджера
|
||||
|
||||
Связь между узлами - точка-точка
|
||||
|
||||
GUI - API ==== API - GUI
|
||||
|
||||
GUI - примитивная программа под Linux/Windows/Android, которая умеет отображать сообщения и вызывать функции ядра (API).
|
||||
API - ядро мессенджера. Достаточно подключить *main.hpp*, чтобы вызывать функции ядра. Такая структура позволяет писать какие угодно клиенты.
|
||||
|
||||
## Протокол обмена
|
||||
|
||||
Обмен сообщениями ведётся по UDP протоколу в формате JSON.
|
||||
При любой успешной отправке данных обновляем поле last_connect у контакта.
|
||||
Если пришло сообщение от контакта, которого нет в адресной книге - то оно отбрасывается.
|
||||
При любой успешной отправке данных обновляем поле last_connect у контакта. (not implemented)
|
||||
Если пришло сообщение от контакта, которого нет в адресной книге - то оно отбрасывается.
|
||||
Исключения - запрос handshake.
|
||||
|
||||
### Добавление в друзья
|
||||
### Добавление в друзья (not implemented)
|
||||
|
||||
Используется, чтобы установить связь с контактом. Тот кто хочет добавиться в друзья - отправляет такой запрос:
|
||||
|
||||
@ -32,8 +23,7 @@ API - ядро мессенджера. Достаточно подключить
|
||||
```json
|
||||
{
|
||||
"action":"handshakeSuccess",
|
||||
"peerID":"*IPv6*",
|
||||
"status": true
|
||||
"peerID":"*IPv6*"
|
||||
}
|
||||
```
|
||||
|
||||
@ -72,7 +62,7 @@ API - ядро мессенджера. Достаточно подключить
|
||||
Если нет ответа, то сохраняем сообщение у себя в истории, чтобы потом переотправить.
|
||||
`status == true` - доставлено.
|
||||
|
||||
### Пинг - проверка онлайна
|
||||
### Пинг - проверка онлайна (not implemented)
|
||||
|
||||
Если прошло время last_connect > 1 минуты, от отправляем запрос
|
||||
|
||||
@ -113,7 +103,7 @@ API - ядро мессенджера. Достаточно подключить
|
||||
|
||||
В ответ приходит массив с `true` или `false`. Если `true` - сообщение успешно отправлено, `false` - сообщение недоставлено.
|
||||
|
||||
### Отправление сообщения для другого абонента (это нужно чтобы отправлять тем, кто в offline)
|
||||
### Отправление сообщения для другого абонента (это нужно чтобы отправлять тем, кто в offline) (not implemented)
|
||||
|
||||
Если человек, которому мы отправляем сообщение offline - то, во-первых, оно сохраняется у себя на сервере, для последующей отправки.
|
||||
Во-вторых, можно попросить какого-то друга его переотправить. Для этого выбираем случайно несколько друзей из списка контактов, у которых `can_resend == 1` и отправляем им запрос.
|
||||
|
Loading…
Reference in New Issue
Block a user