Получение практически всех сообщений (за исключением некоторых чисто служебных, а также незашифрованных сообщений, используемых впротоколе создания авторизационного ключа) должно быть подтверждено. Для этого используется следующее служебное сообщение (не требующее подтверждения):
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 только одна галочка, даже если сообщение прочитано?
Telegram — это популярное мессенджерное приложение, которое предлагает своим пользователям широкий набор функций, позволяющих комфортно общаться и передавать информацию. Однако, одной из особенностей Telegram является то, что в нем отсутствует возможность отслеживать, прочитано ли сообщение получателем. Вместо этого, при отправлении сообщения появляется только одна галочка, что может вызывать некоторые вопросы у пользователей.
Основная причина отсутствия двух галочек в Telegram — это стремление разработчиков обеспечить приватность и безопасность пользователей. В отличие от других мессенджеров, где наличие двух галочек свидетельствует о том, что сообщение было прочитано получателем, в Telegram такая возможность отсутствует. Это значит, что ваше сообщение останется приватным и не будет отображаться другим пользователям.
Кроме того, Telegram предлагает функцию «Таймер самоуничтожения», которая позволяет установить время, через которое сообщение будет удалено из чата. Это дополнительно защищает приватность и делает невозможным отслеживание того, прочитал ли получатель сообщение до его удаления.
Таким образом, отсутствие двух галочек в Telegram является осознанным выбором разработчиков, направленным на обеспечение безопасности и приватности пользователей. Вместо этого, приложение предлагает другие функции, такие как таймер самоуничтожения и защищенные чаты, которые делают общение более конфиденциальным и безопасным.
Одна галочка в Telegram — почему?
Пользователи Telegram могут заметить, что при отправке сообщений в этом мессенджере появляется только одна галочка, даже если сообщение было прочитано адресатом. Это вызывает вопросы и неразрешенные сомнения у некоторых пользователей. Однако, существует рациональное объяснение этому явлению.
Причина отсутствия второй галочки, которая обычно обозначает прочтение сообщения, в Telegram заключается в принципе работы данного мессенджера. В отличие от других популярных платформ, Telegram не использует механизм «подтверждения прочтения» для сообщений. Вместо этого, Telegram фокусируется на обеспечении безопасности и конфиденциальности переписки.
Один из факторов, определяющих безопасность Telegram, является использование шифрования данных. Все сообщения в Telegram шифруются и передаются через защищенные каналы связи. Это означает, что даже сама компания Telegram не имеет доступа к содержанию сообщений пользователей.
С целью обеспечить дополнительную безопасность, Telegram не отправляет подтверждения прочтения сообщения. Это означает, что отправитель не может быть уверен, что его сообщение было прочитано адресатом. Такой подход позволяет пользователям максимально контролировать свою приватность и защищать свои переписки от третьих лиц.
В целом, наличие только одной галочки в Telegram — результат философии мессенджера, сосредоточенного на безопасности и конфиденциальности переписки. Хотя это может вызывать некоторые неудобства для некоторых пользователей, важно понимать, что такой подход позволяет обеспечить надежную защиту информации и сохранить личные данные в безопасности.
Особенность чата
В чате Telegram присутствует особенность, связанная с отображением статуса прочитанности сообщений. В отличие от других мессенджеров, где для этого используются две галочки, в Telegram присутствует только одна галочка. Это вызывает некоторые вопросы у пользователей и приводит к обсуждениям о причинах такого решения.
Читать еще: Почему водка стала хорта?
Стоит отметить, что отсутствие второй галочки в Telegram не обязательно означает, что сообщение не было прочитано. Причина этого заключается в подходе разработчиков к сохранению приватности пользователей. Одна галочка означает, что сообщение было успешно доставлено на устройство получателя. Вторая галочка, которая обычно означает прочтение сообщения, не появляется автоматически, чтобы не нарушать приватность и не давать информацию об этом отправителю.
Тем не менее, в Telegram есть возможность узнать, когда именно сообщение было прочитано. Для этого пользователь может включить функцию «Показывать, когда я читаю». В этом случае, при прочтении сообщения, на экране получателя будет отображаться «Пользователь прочитал ваше сообщение в такое-то время». Эта функция работает только при взаимной подписке на канал или наличии взаимных контактов.
Таким образом, особенность с одной галочкой в Telegram связана с уважением к приватности пользователей и желанием предоставить им максимальную свободу в контроле над информацией о прочтении сообщений.
Приватность сообщений
Приватность сообщений играет важную роль в современных мессенджерах, таких как Telegram. Пользователи ожидают, что их личные разговоры останутся конфиденциальными и не будут доступны третьим лицам.
Конец-концов, Telegram — это конфиденциальный мессенджер
В Telegram придается большое значение безопасности и конфиденциальности сообщений. Все сообщения, отправляемые через платформу, шифруются, что обеспечивает защиту данных пользователей от доступа посторонних лиц.
Одна галочка: прочитано или нет?
Когда в Telegram появляется только одна галочка под сообщением, это означает, что сообщение было успешно доставлено на устройство получателя. Однако, это не означает, что сообщение было прочитано самим пользователем.
Многие пользователи оценивают эту функцию, так как она позволяет им прочитывать сообщения без обязательства отвечать на них немедленно или давать знать отправителю, что сообщение было прочитано. Это даёт больше свободы и контроля пользователю над своим временем и выбором.
Как узнать, что сообщение было прочитано?
В Telegram есть возможность узнать, что сообщение было прочитано, если получатель включил функцию «Чтение сообщений». В этом случае появляется вторая галочка под сообщением. Это позволяет отправителю убедиться, что сообщение было действительно рассмотрено и обратить внимание на его содержимое.
Однако, функция «Чтение сообщений» включается по усмотрению каждого пользователя, и они могут ее выключить, если не хотят давать знать другим, что они видели сообщение.
Вывод
Каждый пользователь Telegram имеет право на приватность и может сам выбирать, когда и как читать сообщения. Одна галочка под сообщением обеспечивает конфиденциальность и свободу выбора, в то время как функция «Чтение сообщений» позволяет легко отслеживать степень внимания, уделяемой сообщению.
Читать еще: Как узнать место госпитализации больного по скорой в Орле?
Отправка в оффлайн
Одной из особенностей Telegram является возможность отправки сообщений в оффлайн.
Как это работает?
Когда вы отправляете сообщение в Telegram, оно сначала попадает на сервер, а затем доставляется адресату. В случае, если получатель находится в оффлайне, сообщение остается на сервере и ожидает его подключения. Это позволяет пользователям отправлять сообщения, даже если их собеседник временно не доступен.
Одной из последствий такого подхода является отображение только одной галочки под сообщением, даже если оно было прочитано получателем. Это связано с тем, что при сохранении сообщения на сервере, Telegram не знает, когда именно получатель подключится и прочтет его. Поэтому система не может подтвердить факт прочтения.
Преимущества отправки в оффлайн:
- Гарантированная доставка сообщения. Даже если получатель в оффлайне, сообщение все равно будет доставлено, когда он подключится к интернету.
- Возможность отправки сообщений в любое время. Нет необходимости ждать пока ваш собеседник будет онлайн, чтобы отправить ему сообщение.
- Сохранение истории переписки. Все отправленные сообщения хранятся на сервере, поэтому вы всегда можете вернуться к ним и прочитать или переправить их.
В целом, функция отправки в оффлайн является удобным и надежным способом общения в Telegram. Она позволяет пользователям быть связанными даже в ситуациях, когда они не могут быть онлайн одновременно.
Защита от спама
Защита от спама является одной из ключевых функций в сервисе Telegram. Платформа разработана таким образом, чтобы обеспечить безопасность и конфиденциальность пользователя. Одним из методов защиты является введение только одной галочки для прочитанных сообщений.
Эта особенность помогает предотвратить спам и нежелательные сообщения, потому что отправитель не узнает, было ли сообщение прочитано или игнорировано. Наличие только одной галочки также означает, что получатель может прочитать сообщение, не предоставляя информацию отправителю.
Кроме того, Telegram применяет и другие методы борьбы со спамом, такие как автоматическое обнаружение и блокировка нежелательных сообщений. При обнаружении спама, сообщение помечается как нежелательное и не доставляется получателю.
Для улучшения эффективности защиты от спама, пользователи также могут пометить сообщение как спам, и Telegram использует эти данные для определения и блокировки подозрительных аккаунтов. Это позволяет создавать безопасное и надежное пространство для общения и обмена информацией.
Единый стандарт
Почему в Telegram только одна галочка, даже если сообщение прочитано? Одна из возможных причин кроется в концепции «единого стандарта».
Telegram стремится предоставить пользователям удобную и надежную платформу для общения, а одно из преимуществ данного мессенджера заключается в простоте и легкости использования. Один из способов достичь этой цели — создание единого стандарта, который определяет, что сообщение прочитано только после того, как его открыл получатель.
Такой подход позволяет избежать путаницы для пользователей и упрощает процесс взаимодействия с сообщениями. Вместо двух галочек, которые могут вызвать разные интерпретации (например, одна галочка означает, что сообщение доставлено, а вторая — что оно прочитано), Telegram ограничивается одной галочкой, которая подтверждает только доставку сообщения.
Читать еще: Топ-5 стран с самыми высокими температурами: где сейчас 50 градусов жары
Таким образом, единый стандарт позволяет упростить и унифицировать процесс обмена сообщениями в Telegram, делая его более предсказуемым и понятным для пользователей. Это одна из особенностей, которая отличает Telegram от других мессенджеров и делает его привлекательным для многих пользователей.
Подтверждение о прочтении
В мессенджере Telegram присутствует система подтверждения о прочтении сообщений. Однако, вместо двух галочек, которые обозначают, что сообщение прочитано, в Telegram присутствует только одна галочка.
Это обусловлено особенностями работы мессенджера. В Telegram при отправке сообщения, сервер принимает его и доставляет получателю. При этом, сервер удаляет сообщение из своей базы данных и не хранит его. Поэтому, нет возможности получить информацию о том, прочитано сообщение или нет. Таким образом, одна галочка в Telegram означает только то, что сообщение было доставлено на устройство получателя.
Несмотря на отсутствие второй галочки, подтверждающей прочтение сообщения, Telegram предлагает другие способы, которые помогают узнать, было ли сообщение прочитано:
- Приложение показывает информацию о том, когда было прочитано последнее сообщение в чате. Название чата в списке диалогов снабжается соответствующей пометкой, указывающей время прочтения последнего сообщения.
- В отдельных чатах можно включить настройку, которая позволяет получателю просмотреть, было ли сообщение прочитано. Такой режим называется «Режим Только для чтения». При его активации отправитель может узнать, прочитал ли получатель сообщение, но получатель не сможет отправить ответ на это сообщение.
Таким образом, хоть в Telegram и отсутствует двойная галочка, подтверждающая прочтение сообщения, мессенджер предоставляет другие способы, которые позволяют узнать, было ли сообщение прочитано.
Удобство и простота
Telegram — это мессенджер, который изначально был создан с упором на удобство использования и простоту взаимодействия. Одним из основных примеров этого является отсутствие в приложении двух галочек для обозначения прочитанности сообщения.
Отсутствие в Telegram двух галочек для обозначения прочитанности сообщения является осознанным выбором разработчиков, сделанным с целью упростить процесс взаимодействия с приложением. Вместо этого в Telegram используется только одна галочка, которая появляется сразу после доставки сообщения получателю. Это удобно и эффективно, позволяет быстро и легко определить, было ли сообщение доставлено и прочитано.
Упрощение процесса взаимодействия с приложением — это одна из главных особенностей Telegram, которая делает его популярным среди пользователей. Отсутствие лишних элементов и функций, таких как вторая галочка, позволяет сфокусироваться на основных задачах и облегчает использование мессенджера.
Кроме того, одна галочка в Telegram позволяет сохранить простоту и минимализм дизайна интерфейса. Вместо нескольких элементов, которые могут создать путаницу и затруднить восприятие информации, в Telegram используется только одна галочка, которая четко указывает, что сообщение было доставлено и получено.
Источник: naman-mebel.ru
Как узнать, кто из беседы в Telegram прочитал сообщение. Появился официальный инструмент
Прежде чем новые функции появляются в Telegram для всех пользователей, их, как правило, тестируют в бета-версиях клиентов. Так происходит сейчас и с опцией просмотра пользователей группового чата, которые прочитали ваши сообщения — ранее мессенджер не отображал, кто конкретно просмотрел сообщение, но в свежих бета-версиях для Android и macOS такая опция появилась.
Подписывайтесь на наш Телеграм
⚠️ Имейте в виду, на данный момент действует ограничение: увидеть список просмотревших сообщение пользователей можно только в групповых чатах численностью до 50 человек.
Как посмотреть, кто прочитал сообщение в Telegram на Android
- Загрузите бета-версию Telegram для Android версии 8.0.1 (2412) или новее — к примеру, из App Center от Microsoft или любого другого источника. Установите её (текущую версию мессенджера можно не удалять, новая бета-сборка станет как обновление).
- Откройте нужный чат (численностью до 50 человек) и нажмите на своё сообщение, чтобы увидеть список просмотревших его. Нужно именно нажать на сообщение, а не задержать на нём палец как при выделении.
Материалы по теме:
- Как сохранить историю в Telegram, которую запретили скриншотить
- Как получать донаты в Telegram, публикуя платные фото и видео
- 9 сторонних клиентов Telegram для Android, во всём лучше оригинального
- Telegram и Signal — не самые защищённые. Есть мессенджеры понадёжнее, вы ими пользовались
Источник: trashbox.ru