ilyalatt / Telega

C# Telegram MTProto Client
https://ilyalatt.github.io/Telega/
MIT License
58 stars 15 forks source link

receive timeout exception tgtransportexception #81

Open Karmageddonium opened 2 years ago

Karmageddonium commented 2 years ago

Приветствую.

Периодически в обновлениях выскакивает такая ошибка. С чем это может быть связано и искали ли вы возможные пути обхода/повторного получения обновления?

Из-за этой ошибки много обновлений просто пропускается по факту.

Кроме того, пока там не отвалится с таймаутом, нормальные обновления перестают приходить.

Заранее спасибо за ответ.

ilyalatt commented 2 years ago

Добрый день. Решается периодическим пингом. В релизе 0.6.0 должно быть сделано по умолчанию. Посмотрите этот пример.

Karmageddonium commented 2 years ago

К сожалению, это не та проблема которая на самом деле была. Почему-то так получается что часть апдейтов просто пропадает почему-то. Чаще всего пропадают апдейты об удалении сообщений содержащих документы. То есть если в телеграм канале есть сообщение состоящее из двух документов (двух фото загруженных одним групповым сообщением без сжатия). И мы запускаем наше приложение, а потом в канале удаляем это сообщение с двумя вложениями, то апдейт с большой вероятностью (не всегда но в большинстве случаев) не приходит. Просто как будто его нет. При этом если добавить сообщение с двумя фото без сжатия во время работы нашего бота, он получит обновление об их добавлении и потом получит обновление об их удалении. Я не смог найти точной зависимости, лишь примерно описываю поведение. Может ли это быть связано с механизмом обработки обновлений от телеги или же это проблема на стороне телеги?

ilyalatt commented 2 years ago

Скорее всего это проблема библиотеки. У меня нет времени на то, чтобы воспроизводить ситуацию, но вы можете помочь разобраться. В Updates есть Exceptions, можно подписаться на исключения, которые происходят при фоновом получении обновлений, и посмотреть, по какой причине обновления перестают приниматься. Можно сделать примерно так tg.Updates.Exceptions.Subscribe(Console.WriteLine)

Karmageddonium commented 2 years ago

Вы не могли бы дать свой телеграм для более оперативного взаимодействия на этот счет? Я бы посмотрел что там внутри.

ilyalatt commented 2 years ago

Где-то около недели оперативно отвечать не смогу, в отпуске)

ilyalatt commented 2 years ago

Вы не могли бы дать свой телеграм для более оперативного взаимодействия на этот счет? Я бы посмотрел что там внутри.

Такой же никнейм, как и на github