mirror of
https://github.com/openmax-server/server.git
synced 2026-06-25 20:31:07 +03:00
70 lines
2.2 KiB
Markdown
70 lines
2.2 KiB
Markdown
# Описание протокола TamTam по Websocket
|
|
|
|
## Основная информация
|
|
В веб версии мессенджера ТамТам используется протокол, работающий поверх Websocket.
|
|
|
|
Пакеты в этом протоколе являются текстовыми JSON данными.
|
|
|
|
Структура пакета:
|
|
```
|
|
{
|
|
ver: int,
|
|
cmd: int,
|
|
seq: int,
|
|
opcode: int,
|
|
payload: {}
|
|
}
|
|
```
|
|
|
|
* ver - версия протокола
|
|
* cmd - определяет, от кого отправлен пакет. клиент - 0, сервер - 1
|
|
* seq - порядковый номер пакета (сервер дублирует его из запроса клиента)
|
|
* opcode - команда
|
|
* payload - полезная нагрузка команды
|
|
|
|
## Команды протокола
|
|
|
|
### PING (1)
|
|
Клиент периодически отправляет пакет с командой PING и нагрузкой "{"interactive": true}".
|
|
Сервер отвечает ему тем же.
|
|
|
|
### SESSION_INIT (6)
|
|
Первый пакет, который клиент отправляет на сервер после подключения. Полезная нагрузка:
|
|
```
|
|
{
|
|
"userAgent": {
|
|
"deviceType": "WEB",
|
|
"appVersion": "версия приложения",
|
|
"osVersion": "операционная система",
|
|
"locale": "язык приложения",
|
|
"deviceLocale": "язык устройства",
|
|
"deviceName": "название устройства",
|
|
"screen": "размер экрана..?",
|
|
"headerUserAgent": "юзерагент устройства",
|
|
"timezone": "часовой пояс"
|
|
},
|
|
"deviceId": "ID устройства"
|
|
}
|
|
```
|
|
|
|
Сервер отвечает ему пакетом с тем же опкодом, но другой нагрузкой:
|
|
```
|
|
{
|
|
"proxy": "msgproxy.okcdn.ru",
|
|
"logs-enabled": false,
|
|
"proxy-domains": [
|
|
"okcdn.ru",
|
|
"mycdn.me",
|
|
"ok.ru",
|
|
"odnoklassniki.ru",
|
|
"odkl.ru",
|
|
"vk.com",
|
|
"userapi.com",
|
|
"vkuser.net",
|
|
"vkusercdn.ru"
|
|
],
|
|
"location": "RU",
|
|
"libh-enabled": true
|
|
}
|
|
```
|