Аналіз методів зв'язку роботів Телеграм з серверної частиною

Автор(и)

  • Elena Aleksandrovna Kavats
  • Artem Aleksandrovich Kostenko

DOI:

https://doi.org/10.34185/1562-9945-3-122-2019-03

Ключові слова:

Telegram, Polling, Webhook, pyTelegramBotAPI, Python, Long Polling, API, testing, performance, SSL certificate

Анотація

В роботі проведено аналіз методів взаємодії додатків-роботів з серверами Телеграм. Проведено порівняння стандартного методу опитування (Long Polling) і Webhook як з боку швидкості взаємодії додатка з кінцевим користувачем, так і трудомісткості налагодження з точки зору розробника. Механізм взаємодії телеграм-бота з серверами телеграм з підтримкою Webhook, що істотно піднімає продуктивність програми в цілому, економлячи час виконання запиту користувача і піднімаючи відмовостійкість.
Метою дослідження є порівняння методів взаємодії додатка-робота Телеграм, написаного на мові Python, а також реалізація цих методів на практиці, з метою виявлення трудомісткості написання обох рішень.
Метод Webhook - це спосіб доставки даних в реальному часі додатків. На відміну від традиційних API, де вам потрібно найчастіше вказують дані, щоб отримати інформацію в режимі реального часу, Webhook відправляють дані негайно.
Пропонується розгляд двох найбільш поширених варіанта зв’язку робота та сервера Телеграм. Найбільш розповсюджений варіант полягає в періодичному опитуванні серверів Телеграм на предмет наявності нової інформації. Все це здійснюється через Long Polling, тобто відкривається єднання на нетривалий час і всі оновлення тут же прилітають боту.
У роботі був запропонований альтернативний варіант спілкування додатку роботу з серверами Телеграм, за допомогою Webhook. В ході роботи по зміні методу обміну даними зі стандартного опитування (Long Polling) на Webhook було доведено його незаперечну перевагу в навантажених додатках, а саме на кількості вхідних запитів більше тисячі, Webhook показав в три рази більше продуктивність в порівнянні зі стандартним опитуванням (Long Polling).

Посилання

Downey, Allen B. (May 2012). Think Python: How to Think Like a Computer Scientist (Version 1.6.6 ed.). ISBN 978-0-521-72596-5.

"RFC6202 - Known Issues and Best Practices for the Use of Long Polling and Streaming in Bidirectional HTTP".

Server-Push Documents (HTML & XHTML: The Definitive Guide) Archived 2008-04-17 at the Wayback Machine. O'Reilly book explaining server-push.

"What is push notifications & How do push notifications work?". www.push-maze.com. Retrieved 2018-10-25.

M. Thomson, E. Damaggio and B. Raymor (October 22, 2016). "Generic Event Delivery Using HTTP Push". Internet Draft. Internet Engineering Task Force. Retrieved October 28,2016.

Lutz, Mark (2013). Learning Python (5thed.). O'Reilly Media. ISBN 978-0-596-15806-4.

Pilgrim, Mark (2009). Dive Into Python 3. Apress. ISBN 978-1-4302-2415-0. Archived from the original on 2011-10-17.

Завантаження

Опубліковано

2019-10-10