mirror of
https://github.com/ChronosX88/Influence-cjdns.git
synced 2024-11-23 15:42:18 +00:00
Update API.md
This commit is contained in:
parent
b4746713a3
commit
fe8088c258
@ -21,13 +21,20 @@ API - ядро мессенджера. Достаточно подключить
|
|||||||
Используется, чтобы установить связь с контактом. Тот кто хочет добавиться в друзья - отправляет такой запрос.
|
Используется, чтобы установить связь с контактом. Тот кто хочет добавиться в друзья - отправляет такой запрос.
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{ "peerID":"*IPv6 контакта*", "action":"handshake" }
|
{
|
||||||
|
"peerID":"*IPv6 контакта*",
|
||||||
|
"action":"handshake"
|
||||||
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
ответ:
|
ответ:
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{ "peerID":"*IPv6*", "action":"handshakeSuccess", "status": true }
|
{
|
||||||
|
"peerID":"*IPv6*",
|
||||||
|
"action":"handshakeSuccess",
|
||||||
|
"status": true
|
||||||
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
У другого абонента висит этот контакт в списке неавторизованных. Если он хочет его тоже добавить в друзья - отправляем ему свой handshake. Возможет вариант, когда сервер автоматически добавляет в друзья (публичный сервер для пересылки offline сообщений).
|
У другого абонента висит этот контакт в списке неавторизованных. Если он хочет его тоже добавить в друзья - отправляем ему свой handshake. Возможет вариант, когда сервер автоматически добавляет в друзья (публичный сервер для пересылки offline сообщений).
|
||||||
@ -37,13 +44,28 @@ API - ядро мессенджера. Достаточно подключить
|
|||||||
Структура сообщения в JSON:
|
Структура сообщения в JSON:
|
||||||
|
|
||||||
```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
|
```json
|
||||||
{ "peerSender":"*IPv6 отправителя, т.е. кому доставили сообщение*", "peerReceiver":"*IPv6 получателя, т.е. кто отправил сообщение*", "action":"sendSuccess", "chatID":"*Идентификатор чата, у обоих он одинаковый*", "msgID":"*ID сообщения, которое доставлено, в чате*", "status": true }
|
{
|
||||||
|
"peerSender":"*IPv6 отправителя, т.е. кому доставили сообщение*",
|
||||||
|
"peerReceiver":"*IPv6 получателя, т.е. кто отправил сообщение*",
|
||||||
|
"action":"sendSuccess",
|
||||||
|
"chatID":"*Идентификатор чата, у обоих он одинаковый*",
|
||||||
|
"msgID":"*ID сообщения, которое доставлено, в чате*",
|
||||||
|
"status": true
|
||||||
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
Сообщение может должно быть зашифровано, метод шифрования указан в поле `enctype`.
|
Сообщение может должно быть зашифровано, метод шифрования указан в поле `enctype`.
|
||||||
@ -55,20 +77,29 @@ API - ядро мессенджера. Достаточно подключить
|
|||||||
Если прошло время last_connect > 1 минуты, от отправляем запрос
|
Если прошло время last_connect > 1 минуты, от отправляем запрос
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{ "peerID":"*IPv6*", "action":"ping" }
|
{
|
||||||
|
"peerID":"*IPv6*",
|
||||||
|
"action":"ping"
|
||||||
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
ответ:
|
ответ:
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{ "peerID":"*IPv6*", "action":"pong" }
|
{
|
||||||
|
"peerID":"*IPv6*",
|
||||||
|
"action":"pong"
|
||||||
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
Если у нас есть сообщения для адреса и он онлайн (last_connect < 1 минуты), то передаём их.
|
Если у нас есть сообщения для адреса и он онлайн (last_connect < 1 минуты), то передаём их.
|
||||||
Если для этого адрес в базе есть недоставленные сообщения, то отправляем такой запрос:
|
Если для этого адрес в базе есть недоставленные сообщения, то отправляем такой запрос:
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{ "action":"history", "messages":[{},{},{}...] }
|
{
|
||||||
|
"action":"history",
|
||||||
|
"messages":[{},{},{}...]
|
||||||
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
ответ:
|
ответ:
|
||||||
@ -86,13 +117,26 @@ API - ядро мессенджера. Достаточно подключить
|
|||||||
Для ретрансляции можно также использовать свой сервер в интернете, нужно просто его добавить в контакты.
|
Для ретрансляции можно также использовать свой сервер в интернете, нужно просто его добавить в контакты.
|
||||||
|
|
||||||
```json
|
```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
|
```json
|
||||||
{ "peerID":"*IPv6*", "action":"resendSuccess","status":true }
|
{
|
||||||
|
"peerID":"*IPv6*",
|
||||||
|
"action":"resendSuccess",
|
||||||
|
"status":true
|
||||||
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
Если `status == 0` - то эта нода не желает пересылать сообщения и ей повторно отправлять не нужно.
|
Если `status == 0` - то эта нода не желает пересылать сообщения и ей повторно отправлять не нужно.
|
||||||
|
Loading…
Reference in New Issue
Block a user