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