Telegram bot API

Планы, идеология, архитектура и т.п.

Модератор: Модераторы

Re: Telegram bot API

Сообщение Ichthyander » 08.10.2024 19:32:23

То есть указанная проблема решилась?
При изменении значения в поле TTelegramSender.Token программа через некоторое время завершается с кодом 1.
Аватара пользователя
Ichthyander
энтузиаст
 
Сообщения: 691
Зарегистрирован: 04.04.2007 08:32:43
Откуда: Астрахань

Re: Telegram bot API

Сообщение xchgeaxeax » 08.10.2024 20:38:32

Ichthyander писал(а):То есть указанная проблема решилась?

Да. Я не учел, что надо синхронизироваться с запросами и что они в режиме ожидания большую часть времени.
xchgeaxeax
постоялец
 
Сообщения: 174
Зарегистрирован: 11.05.2023 03:51:40

Re: Telegram bot API

Сообщение Ichthyander » 06.02.2025 22:44:35

Короткое видео для новичков. Простой телеграм бот в несколько кликов с использованием компонента времени выполнения fptelegram_DT.lpk
https://rutube.ru/video/381e9b6b79bf485 ... 8623d9e0e/
https://youtu.be/KjD3SfVXP7A
Аватара пользователя
Ichthyander
энтузиаст
 
Сообщения: 691
Зарегистрирован: 04.04.2007 08:32:43
Откуда: Астрахань

Re: Telegram bot API

Сообщение xchgeaxeax » 05.03.2025 23:27:45

А есть ли способ завершить поток, в котором
Код: Выделить всё
TTelegramSender.getUpdatesEx(0, 2000000); // больше 23 дней
Сбросить досрочно соединение на сокете, который ждет ответа в ооооочень LongPolling режиме.
xchgeaxeax
постоялец
 
Сообщения: 174
Зарегистрирован: 11.05.2023 03:51:40

Re: Telegram bot API

Сообщение Ichthyander » 06.03.2025 16:07:00

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
Аватара пользователя
Ichthyander
энтузиаст
 
Сообщения: 691
Зарегистрирован: 04.04.2007 08:32:43
Откуда: Астрахань

Re: Telegram bot API

Сообщение xchgeaxeax » 06.03.2025 17:20:14

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

А в целом я согласен, что ставить 2000000 сек ожидания не стоит. Но, подумал, что механизм отмены ожидания сокета все же предусмотрен.
xchgeaxeax
постоялец
 
Сообщения: 174
Зарегистрирован: 11.05.2023 03:51:40

Пред.

Вернуться в Разработки на нашем сайте

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5

Рейтинг@Mail.ru