tgoop.com/eshu_coding/191
Last Update:
Палантир. Часть 4. Протокол телеграма.
#палантир@eshu_coding
Помните, раньше говорилось, что телеграм - самый быстрый из мессенджеров и работает на самом убогом интернете? Причина скрыта в реализации протокола обмена данными клиентов и серверов.
Первое знакомство с протоколом вызывает бурю эмоций, но по прошествии времени проникаешься гениальностью замысла. API описано, на основании описания авторы клиентских библиотек генерируют основной код, после чего доводят библиотеку напильником.
Данные передаются через голый TCP, без всяких наворотов.
Принцип работы следующий: любая сущность представляет собой поток байтов. Первые 4 байта описывают тип сущности: канал, чат, человек, сообщение, прикреплённое медиа. Тип сущности и что какие байты значат берется из генерированного по API кода.
Необязательные параметры в документации помечаются степенью двойки. Наличие параметра определяется следующим образом: берутся 4 байта. Если логическое И этих байтов и двойки в степени из документации не равно нулю - значит параметр есть, повторяем вышеописанную процедуру разбора на нем. Если нет - идём дальше.
Жуткая наркомания, но в итоге по сети передаётся только полезная информация.
#телеграм
BY Эшу быдлокодит

Share with your friend now:
tgoop.com/eshu_coding/191