Получение практически всех сообщений (за исключением некоторых чисто служебных, а также незашифрованных сообщений, используемых впротоколе создания авторизационного ключа) должно быть подтверждено. Для этого используется следующее служебное сообщение (не требующее подтверждения):
msgs_ack#62d6b459 msg_ids:Vector long = MsgsAck;
Сервер обычно подтверждает получение сообщения от клиента (как правило — RPC-запроса) с помощью RPC-ответа. Если же ответа долго нет, сервер может сначала отправить подтверждение получения, а через какое-то время — сам RPC-ответ.
Клиент обычно подтверждает получение сообщения от сервера (обычно — RPC-ответа), добавляя подтверждение в следующий RPC-запрос, если он отправляется не слишком поздно (скажем, если он возникает в течение 60-120 секунд после получения сообщения от сервера). Однако если долго нет повода послать сообщения к серверу, или если неподтвержденных сообщений от сервера становится много (скажем, больше 16), то клиент отправляет подтверждение само по себе.
Уведомление проигнорированном ошибочном сообщении
В некоторых случаях сервер может уведомить клиента, что присланное им сообщение было проигнорировано по той или иной причине. Отметим, что такое уведомление не может быть сгенерировано, если сообщение не было корректно расшифровано сервером.
bad_msg_notification#a7eff811 bad_msg_id:long bad_msg_seqno:int error_code:int = BadMsgNotification; bad_server_salt#edab447b bad_msg_id:long bad_msg_seqno:int error_code:int new_server_salt:long = BadMsgNotification;
Здесь error_code может принимать в том числе следующие значения:
- 16 — слишком маленький msg_id (скорее всего, на клиенте неправильное время; имеет смысл синхронизировать его, использовав msg_id уведомления, и перепослать исходное сообщение с «правильным» msg_id, либо обернуть его в контейнер с новым msg_id, если исходное сообщение слишком долго ждало отправки на клиенте)
- 17 — слишком большой msg_id (аналогично предыдущему случаю: надо синхронизировать время на клиенте и перепослать сообщение с правильным msg_id )
- 18 — неправильные младшие два бита msg_id (сервер ожидает, что msg_id клиентских сообщений делится на 4)
- 19 — msg_id контейнера совпал с msg_id ранее полученного сообщения (такого никогда не должно быть)
- 20 — сообщение слишком старое, и невозможно проверить, получал ли сервер сообщение с таким msg_id или нет
- 32 — слишком маленький msg_seqno (сервером уже было принято сообщение с меньшим msg_id , но с большим seqno, либо с таким же нечетным)
- 33 — слишком большой msg_seqno (аналогично: есть сообщение с большим msg_id , но с меньшим seqno, либо с таким же нечетным)
- 34 — ожидали четный msg_seqno (несущественное сообщение), получили нечетный
- 35 — ожидали нечетный msg_seqno (существенное сообщение), получили четный
- 48 — неправильная серверная соль (в этом случае присылается ответ bad_server_salt с правильной солью, надо перепослать сообщение с ней)
- 64 — неправильный контейнер.
По замыслу, значения error_code группируются по ( error_code 4): например, коды 0x40..0x4f соответствуют ошибкам при разборе контейнера.
Уведомления о проигнорированном сообщении не нуждаются в подтверждении (т.е. являются несущественными).
Важно: если на сервере изменился server_salt , или если у клиента неправильное время, на любой запрос будет получено уведомление указанного выше вида. Клиент должен проверить, что он действительно недавно отправлял сообщение с указанным msg_id , и если это так — обновить у себя поправку времени (разницу между серверными и клиентскими часами) и серверную соль, исходя из msg_id и server_salt уведомления, чтобы использовать их для (пере)отправки будущих сообщений. При этом исходное сообщение (то, на которое вернули уведомление об ошибке) тоже должно быть перепослано с более адекватным msg_id и/или server_salt .
Кроме того, клиент может обновлять значение server_salt , используемое при отправке сообщений на сервер, исходя из значений в rpc-ответах или контейнерах, содержащих rpc-ответ, при условии, что этот rpc-ответ действительно соответствует недавно отправленному запросу. (В случае сомнения лучше не обновлять, т.к. есть риск replay-атаки.)
Запрос информации о состоянии сообщений
Если одна из сторон долго не получает информации о состоянии отправленных ей сообщений, она может явно запросить ее у противоположной стороны:
msgs_state_req#da69fb52 msg_ids:Vector long = MsgsStateReq;
Ответ на этот запрос содержит в себе следующую информацию:
Сообщение информации о состоянии сообщений
msgs_state_info#04deb57d req_msg_id:long info:string = MsgsStateInfo;
Здесь req_msg_id — идентификатор запроса msgs_state_req , info — строка, которая для каждого сообщения из присланного списка msg_ids содержит ровно один байт с состоянием сообщения:
- 1 = о сообщении ничего не известно ( msg_id слишком мал, противоположная сторона могла его забыть)
- 2 = сообщение не было получено ( msg_id в диапазоне хранимых идентификаторов, однако противоположная сторона такого сообщения точно не получала)
- 3 = сообщение не было получено ( msg_id слишком велик, противоположная сторона его точно еще не получила)
- 4 = сообщение было получено (отметим, что такой ответ заодно является подтверждением получения)
- +8 = на сообщение уже было отправлено подтверждение
- +16 = на сообщение не требуется подтверждение
- +32 = идет или уже завершена обработка RPC-запроса, содержащегося в сообщении
- +64 = на сообщение уже был сгенерирован содержательный ответ
- +128 = другая сторона точно знает о том, что это сообщение было получено
Этот ответ не нуждается в подтверждении. Сам по себе он является подтверждением на соответствующий msgs_state_req .
Отметим, что если вдруг выясняется, что у противоположной стороны нет сообщения, которое вроде бы было ей отправлено, можно просто отправить это сообщение снова. Даже если на противоположную сторону вдруг придет сразу два экземпляра этого сообщения, дубль будет проигнорирован. (Если прошло слишком много времени и исходный msg_id уже не годится, надо обернуть сообщение в msg_copy .)
Добровольное информирование о состоянии сообщений
Любая сторона может добровольно информировать другую сторону о состоянии сообщений, посланных другой стороной.
msgs_all_info#8cc0d131 msg_ids:Vector long info:string = MsgsAllInfo
Перечисляются все коды сообщений, известных данной стороне, за исключением тех, для которых установлен флаг +128 или +16 . Однако если установлен флаг +32 , но не +64 , то состояние сообщения все-таки будет прислано.
Такое сообщение не нуждается в подтверждении.
Расширенное добровольное информирование о состоянии одного сообщения
Обычно используется сервером для ответа на повторное получение сообщения msg_id , особенно в том случае, если на это сообщение был сгенерирован ответ, и этот ответ большой. Если ответ небольшой, сервер может вместо этого повторить сам ответ.
msg_detailed_info#276d3ec6 msg_id:long answer_msg_id:long bytes:int status:int = MsgDetailedInfo; msg_new_detailed_info#809db6df answer_msg_id:long bytes:int status:int = MsgDetailedInfo;
Второй вариант используется для уведомления о сообщениях, которые были созданы на сервере не в результате rpc-запроса (например, уведомления о новых сообщениях), были отосланы клиенту какое-то время назад, но на них не было получено подтверждения.
Такое сообщение не нуждается в подтверждении.
Явный запрос перепосылки сообщений
msg_resend_req#7d861a08 msg_ids:Vector long = MsgResendReq;
В качестве ответа удаленная сторона немедленно перепосылает запрошенные сообщения, обычно по тому же соединению, по которому пришел этот запрос. Если сообщение с запрошенным msg_id отсутствует или уже было забыто, либо если оно было отправлено запрашивающей стороной (что понятно по четности), для таких msg_id присылается ответ MsgsStateInfo .
Сайт про Telegram на русском (неофициальный).
Здесь собраны приложения на базе MTProto, переведена некоторая документация с официального сайта, а также работает Webogram.
Источник: tlgrm.ru
Как узнать, кто читает ваши сообщения и понять двойную проверку Telegram? Пошаговое руководство
При использовании этого типа приложения для обмена сообщениями очень важно знать, Вы уже получили сообщение, и если вы его прочитали, особенно если это что-то срочное.
Однако в случае Телеграмма Следует отметить, что он немного отстал в этом плане, если сравнивается с другими приложениями, такими как WhatsApp, который четко показывает вашим пользователям, прочитаны они или нет.
На случай, если Телеграмма этого не может быть, так как Я проверяю их в этом приложении они в любом случае одинаковы. Но есть способ узнать это, для этого следуйте всему, чему мы научим вас ниже.
Пошагово узнайте, как узнать, кто прочитал ваше сообщение в беседе Telegram
Если провести небольшое сравнение между WhatsApp и Telegram принимая во внимание этот аспект, следует отметить, что WhatsApp предложения Проверьте разных цветов, чтобы знать это, это как двойная синяя клетка означает, что сообщение человека уже было получено и прочитано получателем, что не может быть известно в Телеграмма так как он не меняет своего цвета и всегда имеет серый цвет. В Телеграмма пользователи также столкнутся с проверка и двойная проверка где каждый из них имеет свое значение.
Обычно они появляются, как только вы отправляете сообщение, имейте в виду, что если у вас его нет интернет-соединение вместо того, чтобы появляться мотыльки так как они также известны, появятся часы, которые будут оставаться таковыми до тех пор, пока ваше устройство не подключится к сети и не сможет отправить сообщение. Поэтому в этом случае курьер не предлагает никаких вариаций цвета в чек что затрудняет определение того, кто прочитал ваше сообщение или нет.
Однако, чтобы вы могли понять это немного лучше, здесь мы покажем вам значение каждого из них:
- Единая проверка: Когда вы отправляете свое сообщение, автоматически появляется единственная галочка, это означает, что оно было отправлено правильно, но пользователь еще не получил или не видел его.
- Двойная проверка: Если ваше сообщение перешло от одной проверки к двум из них, это означает, что человек уже получил это сообщение и видел его, хотя имейте в виду, что он мог видеть его через уведомление, но вы не вошли в чат напрямую, поскольку в отличие от WhatsApp он не показывает вам, когда именно человек читает то, что вы ему отправили в чате. Так что в некотором смысле у вас все еще есть сомнения.
Таким образом, если вы отправили текст, смайлик, фото, видео, аудио или что-то еще, и оно отображается с двойной галочкой, это означает, что этот человек уже получил ваше сообщение и прочитал его или, по крайней мере, ему поверили. Следовательно, чтобы знать это, вы просто должны знать Я проверяю их того, что вы отправили, это работает одинаково для любого устройства, на котором вы используете приложение, либо с мобильная, веб-версия или настольная версия.
Узнайте, как узнать, кто читал вас в группе Telegram с любого устройства
Наверняка вам интересно, как вы можете знать, были ли вы уже прочитаны или нет в Группа Telegram. Здесь можно сказать, что есть еще один недостаток этого приложения по сравнению с его основным конкурентом, поскольку на этот раз пользователи не смогут узнать, кто из члены группы где это было прочитано. Поскольку узнать эти типы деталей практически невозможно.
В этом случае вы можете узнать, только когда сообщение было отправлено и когда оно уже достигло участников, в этом случае вы будете знать, что оно уже было прочитано, потому что оно появится с двойная проверка, но вы не сможете узнать, кто из членов группы был тем, кто это прочитал, или сколько из них это сделали. Таким образом, вы можете довольствоваться только знанием того, что ваше сообщение уже находится в разговоре и что в любой момент его прочитают другие коллеги.
Жалко Телеграмма в нем пока нет гораздо более продвинутых функций, позволяющих узнать, у какого человека в группе читать и время или в этом случае примените цвет, который позволяет различать чат. Ожидается, что в будущем этот тип функций будет добавлен в его новые обновления.
Как узнать ваше последнее соединение и соединение ваших контактов
- В этом смысле также следует отметить, что он отличается от своего основного конкурента, так как он проявляется несколько иначе. На случай, если Телеграмма у пользователей будет немного больше выбора с точки зрения их Конфиденциальность.
- Если вы хотите знать, что последнее соединение Вам просто нужно найти конкретного человека в поисковой системе приложения, и там он появится, когда это был его последний доступ, как вы можете видеть на следующем изображении.
- Другой способ узнать это прямой доступ к чату человека, справа внизу имя появится, когда вы в последний раз обращались к приложению.
- В случае, если вы хотите сохранить свою конфиденциальность и предотвратить это ваши контакты в вашем профиле приложения, то у вас будет возможность настроить это тремя способами.
Но сначала вы должны знать, что то, что вы выбираете там, также определяет то, что вы собираетесь увидеть в добавленных контактах:
- Все: Когда вы активируете эту опцию, вы увидите время вашего последнего подключения всем пользователям, которые ищут вас, независимо от того, добавлены они у вас или нет. Таким же образом вы сможете увидеть связь тех людей, у которых это тоже активировано, независимо от того, добавили они вас или нет.
- Мои контакты: Если вы выберете эту опцию, то ваше последнее время подключения будет показано только тем людям, которых вы добавили в свои контакты, остальные смогут видеть только статусы, такие как «Недавно», «Несколько дней назад», «Несколько недель назад», Вы также найдете возможность поделиться этим с конкретными пользователями.
- Никто: Теперь, если вы один из тех, кто любит конфиденциальность, вы можете выбрать “Никто”, Как следует из названия, никто не сможет узнать время вашего последнего подключения к приложению, за исключением самых неопределенных состояний, таких как “В последнее время”, среди прочего. Они не будут знать, в сети вы или нет, но имейте в виду, что вы не сможете увидеть ни один из этих аспектов в других контактах.
Источник: stepbystepinternet.com
Почему не можешь прочитать сообщение в телеграмме?
Проблемы в отправке сообщений в приложении «Телеграмм» возникают из-за сбоев, которые появляются в алгоритмах программы. Определённые функции «Телеграмма», вычисляющие спам, имеют достаточно жёсткую структуру, именно они способны ошибочно внести любого из пользователей в список спамеров.
Как понять что человек заблокировал в Телеграме?
Симптомы блокировки
- вы не можете посмотреть сетевой статус человека. В чате отображается “был в сети давно”, “last seen recently”. …
- ваши сообщения постоянно с одной галочкой. Это значит, что ваши сообщения доставлены только на сервер, к нужному контакту они не придут. …
- вы не видите аватарку пользователя.
Как прочитать сообщение не заходя в Телеграм?
Нажимаем пальцем на аватар того диалога, чтение которого нужно скрыть, чтобы отправитель не узнал об этом, когда будет заходить в мессенджер. Через 2–3 секунды откроется уменьшенное окно чата. Здесь будет видно последнее сообщение отправителя, которое можно прочитать и оставить как непрочитанное.
Как убрать предпросмотр сообщений в Телеграм?
К счастью, Телеграм позволяет отключить предпросмотр сообщений. Для этого в настройках перейдите в меню Notifications and Sounds и отключите флаг Message Preview.
Что означает одна галочка в телеграмме?
отправка сообщения прошла успешно; адресат получил его; собеседник может изучить доставленные данные, но окно чата пока не открывал.
Почему не отправляются сообщения в Телеграме?
Причин несколько: они могут как зависеть от вас, так и объясняться техническими неполадками со стороны мессенджера. При возникновении проблем с отправкой сообщений следует исключить вариант отсутствия интернет-соединения. Убедитесь, что интернет на вашем устройстве включен и стабильно работает.
Как узнать что тебя заблокировали?
Как понять, что тебя заблокировали в мессенджере или на телефоне?
- Сообщения отмечаются одной галочкой, а не двумя. …
- Звонки (при наличии функции в мессенджере) не проходят. …
- Нельзя просмотреть обновления фото профиля – видите устаревший аватар, не замечая изменений;
- Недоступна информация о статусе «В сети» или «Не в сети»;
Почему в телеграмме был недавно?
Что значит «Был недавно» в Телеграме Запись может означать, что собеседник посещал чат сегодня в течение дня, вчера, был на этой неделе или даже в этом месяце. Статус изменится только в одном случае – если человек не заходил в Телеграм более месяца.
Как увидеть удаленное сообщение в телеграмме?
Основным достоинством телеграма считается безопасность и конфиденциальность, поэтому о резервном копировании речи не идёт. Разработчики просто не позволяют пользователям сливать свои собственные данные туда, где до них могут добраться злоумышленники. Поэтому и восстановить удалённые сообщения в тележке не получится.
Как можно восстановить удаленные сообщения в телеграмме?
Если вы удалили чат в Telegram, в нижней части экрана появится кнопка «Отмена». Чтобы восстановить свою беседу, нажмите на нее в течение пяти секунд. После этого вы можете снова получить доступ ко всей переписке, файлам, изображениям, видео и голосовым сообщениям соответствующего чата.
Как убрать плавающее окно Телеграм?
Проведите по экрану вниз. В разделе «Разговоры» нажмите и удерживайте уведомление чата….Чтобы убрать всплывающий чат для разговора, выполните следующие действия:
- Нажмите на всплывающее уведомление, чтобы открыть разговор.
- В левом нижнем углу экрана выберите Настроить.
- Нажмите Не показывать всплывающий чат для разговора.
Как сделать невидимое сообщение Телеграм?
Часть сообщения можно сделать невидимой, чтобы спрятать спойлеры. Для этого нужно зажать сообщение, выделить часть текста и применить форматирование «Скрытый». Такой текст не будет видно ни в сообщениях, ни в списке чатов, ни в оповещениях.
Что значит одна и две галочки в телеграмме?
Роль галочек в Telegram — информирование о статусе. 1 информирует нас о том, что сообщение достигло облачного сервера или устройства собеседника, а 2 — что он его благополучно прочитал.
Почему в Телеграмм одна галочка?
отправка сообщения прошла успешно; адресат получил его; собеседник может изучить доставленные данные, но окно чата пока не открывал.
Что делать если не отправляются сообщения в сообщениях?
Что делать, если не отправляются SMS на любые номера
- Перезагрузите устройство …
- Проверьте баланс SIM-карты …
- Проверьте номер SMS-центра …
- Проверьте смартфон/планшет с SIM-картой другого оператора …
- Очистите данные приложения «Сообщения» …
- Проверьте работу устройства в безопасном режиме …
- Отключите сторонние приложения
Что слышит человек в черном списке?
Но, какое бы из них вы ни выбрали, исход будет один: вызывающий вас абонент будет бесконечно слышать прерывистые гудки, как будто вы сами пытаетесь ему дозвониться в этот же момент. Если у установленного по умолчанию приложения нет функции блокировки вызовов, скачайте «Телефон» от Google.
Как позвонить человеку если ты в черном списке?
Решается это проблема довольно просто. Заходите в раздел «Телефон» настроек iPhone, где выбираете меню «Показывать номер». Уберите тумблер «Показывать номер». После этого можете звонить абоненту, который вас заблокировал — у него на экране будет отображаться звонок от «анонима».
Источник: toptitle.ru