2.2 KiB
2.2 KiB
Описание протокола 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
}