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
|
||||
{ "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` - то эта нода не желает пересылать сообщения и ей повторно отправлять не нужно.
|
||||
|
Loading…
Reference in New Issue
Block a user