Перейти к основному содержимому

3 записи с тегом "microservice"

Посмотреть все теги

· 6 мин. чтения

banner

примечание

Этот пост – актуализация и перепись двух старых постов на эту тему.

poll.def.pm – это простейший open-source Long Polling сервер, который выступает в качестве своеобразного WebHook сервера и хранит в себе полученные updates.

🌈 Вы можете указать единый вебхук url на всех API сервисах, с которыми работаете, затем получать эти вебхуки со стольки своих сервисов, сколько создадите.

  • В любое время. Даже если ваш сервис был offline, данные не теряются
  • Мгновенно. Как только приходит новый апдейт, вы сразу его получаете. Без задержки
  • Без спама GET запросами. Соединение с long-polling не разрывается, пока не придет апдейт.
  • Получаете везде одновременно. Например телеграмовский getUpdates запрещает одновременно получать апдейты на нескольких серверах. Так ваш бот не сможет работать по частям на разных серверах.

· 2 мин. чтения

🆘 UPD 2023.12.15

Этот пост немного устарел, но он уже переписан и актуализирован тут 👈 Рекомендую сразу читать статью по ссылке

  • Все упоминания poll.gmod.app в этом посте заменены на poll.def.pm (но оба домена рабочие в демо режиме)

Это простейший Long Polling микросервис, который выступает в качестве своеобразного WebHook сервера для POST запросов. Принятые данные можно получить с сервера по GET запросу.

· 2 мин. чтения

🆘 UPD 2023.12.15

Этот пост немного устарел, но он уже переписан и актуализирован тут 👈 Рекомендую сразу читать статью по ссылке

  • Все упоминания poll.gmod.app в этом посте заменены на poll.def.pm (но оба домена рабочие в демо режиме)

Проблема

Если развернуть веб сервер с вебхуком возможности нет, а принимать сообщения от какого-то сервиса (например Telegram) нужно, мы используем polling. Это когда мы сами спрашиваем у сервиса, нет ли у него для нас новостей. В случае с Telegram, это происходит через запрос getUpdates.

Но что, если сервис не имеет своего поллинг сервера и предлагает лишь доставку апдейтов на webhook, как например GitHub? Или есть ряд других проблем, которые перечислены в разделе "Применения"?