на чистом node.js без библиотек, крутится на heroku. Бот получает запросы от пользователей, собирает данные и отправляет ответы. Он реализован через long polling, т.е. я в цикле регулярно проверяю наличие новых сообщений и обрабатываю их. Хочу переделать его на webhook, но не до конца понимаю как именно к этому подойти.
1. Где взять сам webhook? Я вижу, что в heroku есть возможность создать webhook, это то, что мне нужно? Какие еще удобные варианты есть?
2. Как именно обрабатывать входящие сообщения в webhook? Правильно ли я понимаю, что в отличии от long pooling я буду получать не массив сообщений, скопившихся между проверками getUpdates, а на каждое сообщение в webhook будет приходит блок информации. Вот в каком виде он приходит? Как его потреблять?
Из того что я понял, покопавшись, то вроде как надо разворачивать сервер, слушать на каком-то порту и по приходу в webhook сообщения будет срабатывать событие, которое мне и надо как-то ловить и обрабатывать. Есть ограничение - остаться на чистом node.js без библиотек и фрэймворков.
Короче какой-то затык, не могу пока продвинуться дальше, буду благодарен за подсказки
В чатах по ботам советуют оставаться на long polling, потому что ты одним запросом можешь сразу кучу апдейтов забрать
Во-первых, мне не совсем нравится, что есть ограничение на скорость ответа бота, т.е. ответ может обработаться за 1 секунду, а может за 4 и это не зависит от реальной нагрузки, а просто скорость с которой можно опрашивать ТГ. Во-вторых, нагрузка большая не ожидается, а для меня это больше образовательный проект, чем коммерческий, хочу освоить и сравнить по факту что лучше.
1. Где взять сам webhook? Это http роут в твоём приложении, которое принимает запрос от телеграма. Тебе надо такой роут создать (обычно в бибилиотеках для бота это из коробки доступно), и так же надо отправить запрос в телеграм, чтобы сказать ему адрес вебхука 2. Как именно обрабатывать входящие сообщения в webhook? Можешь посмотреть как это реализовано в готовых библиотеках
Обсуждают сегодня