openmax-server/docs/proto/tamtam_ws.md

2.2 KiB
Raw Blame History

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