Что выбрать для телеграм бота? Вебхуки или лонгполлинг?
Я не писал телеграм ботов. Задача такова. Нужно написать бота на го, которому отсылаешь голосовое сообщение, а он обрабатывает это аудио и отвечает текстом. Для обработки аудио буду обращаться по grpc к другому сервису.
У меня встал вопрос. А что использовать? Если интернет не врет, то есть два варианта. Лонгполлинг или вебхуки. Как я понял в 100% задач лучше вебхуки. Но я подозреваю, что я не прав. Что лучше подойдет в моем случае?
"Long polling" периодически опрашивает телеграм сервер, за счёт этого пользователю будет казаться, что бот "торзмозит", т.к. между отправкой сообщения от пользователя и до получения ответа будут паузы.
По крайней мере у меня было именно так.
Еще стоит сказать о том, что "Long polling" не подойдёт если говорить о нагрузках.
После перехода на WebHook'и - сразу заработало всё очень резво.
Также с использованием WebHook'ов у вас будет возможность горизонтально масштабировать бота в случае роста нагрузок.
Если бы у меня стояла такая задача - я бы использовал WebHook'и.
Мне это пока не нужно, но все-таки интересно. Не знаете ли вы как горизонтально масштабируются телеграм боты? Если в случае с микросервисами мне все вроде бы понятно. Есть балансировщик, он распределяет по инстансам микросервиса и так далее.
С телеграм ботами же другая история
Dmitrii, это явно проблема на стороне бота, как один из вариантов - могло разрываться соединение с базой, и при новом запросе с телеграм скрипт понимал, что соединение оборвано, пытался восстановить и т.д.
nakem, тут всё точно так же как и с обычными HTTP запросами, только в привычном варианте HTTP запрос приходит от пользователя/клиента, а в случае телеграм бота - запрос приходит с телеграм сервера, но это всё тот же HTTP запрос.
Т.е. достаточно просто запустить сервис бота на разных серверах и, например, nginx'ом балансировать трафик между ними.
Лучше всего вебхуки потому что это гарантирует доставку и меньше необходимо задумываться над способом получения сообщений, они сами приходят на ваш сервер