Страница 6 из 6

Re: Telegram bot API

Добавлено: 08.10.2024 18:32:23
Ichthyander
То есть указанная проблема решилась?
При изменении значения в поле TTelegramSender.Token программа через некоторое время завершается с кодом 1.

Re: Telegram bot API

Добавлено: 08.10.2024 19:38:32
xchgeaxeax
Ichthyander писал(а):То есть указанная проблема решилась?
Да. Я не учел, что надо синхронизироваться с запросами и что они в режиме ожидания большую часть времени.

Re: Telegram bot API

Добавлено: 06.02.2025 21:44:35
Ichthyander
Короткое видео для новичков. Простой телеграм бот в несколько кликов с использованием компонента времени выполнения fptelegram_DT.lpk
https://rutube.ru/video/381e9b6b79bf485 ... 8623d9e0e/
https://youtu.be/KjD3SfVXP7A

Re: Telegram bot API

Добавлено: 05.03.2025 22:27:45
xchgeaxeax
А есть ли способ завершить поток, в котором

Код: Выделить всё

TTelegramSender.getUpdatesEx(0, 2000000); // больше 23 дней
Сбросить досрочно соединение на сокете, который ждет ответа в ооооочень LongPolling режиме.

Re: Telegram bot API

Добавлено: 06.03.2025 15:07:00
Ichthyander
xchgeaxeax писал(а):А есть ли способ завершить поток, в котором

Код: Выделить всё

TTelegramSender.getUpdatesEx(0, 2000000); // больше 23 дней
Сбросить досрочно соединение на сокете, который ждет ответа в ооооочень LongPolling режиме.
Для начала: установка longpolling в минутах или часах уже бессмысленно, не говоря уж о днях. Клиент и сервер не будет держать столько времени соединения, все равно он прервется и заново установит соединение. Если по каким-то причинам нужно долгое соединение то достаточно вполне 15 секунд. Для десктоп приложений, использующих лонгполлинг соединение с ботом я бы поставил, к примеру, в 4 секунды, для большей интерактивности, к примеру, в случае закрытия приложения, чтобы оно оперативней закрывалось.

В целом вопрос как прервать соединение TTelegramSender.getUpdatesEx относится к вопросу как прервать соединение TFPHTTPClient:
1. Самый просто и правильный способ уменьшить лонгполлинг время до приемлимых значений: 5-7 секунд.
2. Попробовать низкоуровнево останавливать соединение TFPHTTPClient, получив его handle.
3. Использовать другой HTTP клиент, к примеру, indy или synapse (брокеры в fp-telegram это позволяют).

Я бы попросту предложил бы выбрать пункт 1

Re: Telegram bot API

Добавлено: 06.03.2025 16:20:14
xchgeaxeax
Этот огромный таймаут у меня потому, что для отладки мне мешает периодическое сообщение с ошибкой резолва url https://api.telegram.org. В рабочем режиме это исключение не появляется, а вот отладчик мне упорно сообщает о них. И каждый раз галочка игнорировать приводит лишь к тому, что он снова его отображает.

А в целом я согласен, что ставить 2000000 сек ожидания не стоит. Но, подумал, что механизм отмены ожидания сокета все же предусмотрен.