Авторизованные пользователи привязывают приложения к своему аккаунту и управляют ими из браузера, с любого устройства подключенного к сети.
- Приложениям не требуется какой либо интерфейс пользователя;
- Не накладывается ограничения на механизм привязки приложения к аккаунту;
- Управляющий браузер и приложение могут находится за NAT;
- Привязка к аккаунту нескольких приложений;
- Привязка приложения к нескольким аккаунтам;
Типовая схема взаимодействия:
+---------+ wss +-----------+ wss +-------------+
| Browser |<=======>| WS Server |<=======>| Application |
+---------+ +-----------+ +-------------+
^ ^| ^
| || https api |
\ |v /
\ +-----------+ /
`-------->| Control |<--------'
https ajax | server | https api
+-----------+
Сообщения передаются к формате json
.
Сообщения от пользователя являются управляющими и передаются конкретному приложению. Сообщения от приложения являются информирующими и передаются всем подключениям аккаунтов к которым привязано приложение. Также есть несколько уведомительных сообщений.
Исходящее, отправка сообщения приложению:
{
"Action": "sendData",
"To": "123e4567-e89b-12d3-a456-426655440000", // Application installation uuid
"Data": {
// A payload data
}
}
Входящее, получение сообщения приложения:
{
"Action": "receivedData",
"From": "123e4567-e89b-12d3-a456-426655440000", // Application installation uuid
"Data": {
// A payload data
}
}
Исходящее, запрос на получение подключенных в данный момент приложений:
{
"Action": "getConnected",
"List": [
// Application installation uuid
"123e4567-e89b-12d3-a456-426655440000"
//...
]
}
Входящее, список подключенных приложений, если отправляется в ответ на getConnected
,
то содержит полный список подключенных, либо при подключении приложения к серверу - в списке только одно приложение:
{
"Action": "connected",
"List": [
{
"Aid": "123e4567-e89b-12d3-a456-426655440000", // Application installation uuid
"Ip": "255.255.255.255"
}
]
}
Входящее, список отключившихся приложения от сервера:
{
"Action": "disconnected",
"List": [
// Application installation uuid
"123e4567-e89b-12d3-a456-426655440000"
]
}
Входящее, список привязанных приложений к аккаунту:
{
"Action": "attached",
"List": [
// Application installation uuid
"123e4567-e89b-12d3-a456-426655440000"
]
}
Входящее, список отвязанных приложений от аккаунта:
{
"Action": "detached",
"List": [
// Application installation uuid
"123e4567-e89b-12d3-a456-426655440000"
]
}
Исходящее, отправка сообщения браузеру(-ам):
{
"Action": "sendData",
"Data": {
// A payload data
}
}
Входящее, получение сообщения браузера:
{
"Action": "receivedData",
"From": 1234567890, // User id
"Data": {
// A payload data
}
}
Необходимо указать заголовок в запросе
Auth: <api key>
Отправка сообщения пользователю (в браузеры)
где | параметр | описание |
---|---|---|
GET | uid | int, идентификатор пользователя |
POST | body | json, сообщение |
Отправка сообщения приложению
где | параметр | описание |
---|---|---|
GET | aid | UUID, идентификатор приложения |
POST | body | json, сообщение |
При получении приложением, отправителем будет системный пользователь с uid = 1
.
Получение параметров аутентификации пользователя (браузера)
где | параметр | описание |
---|---|---|
GET | uid | int, идентификатор пользователя |
где | параметр | описание |
---|---|---|
RESPONSE | body | string, QUERY строка с параметрами аутентификации для подключения к серверу |
Получение параметров аутентификации приложения
где | параметр | описание |
---|---|---|
GET | aid | UUID, идентификатор приложения |
где | параметр | описание |
---|---|---|
RESPONSE | body | string, QUERY строка с параметрами аутентификации для подключения к серверу |
Добавление приложения пользователя
где | параметр | описание |
---|---|---|
GET | uid | int, идентификатор пользователя |
GET | aid | UUID, идентификатор приложения |
Удаление приложения пользователя
где | параметр | описание |
---|---|---|
GET | uid | int, идентификатор пользователя |
GET | aid | UUID, идентификатор приложения |