-
Notifications
You must be signed in to change notification settings - Fork 0
Long Polling vs Webhook
조은비 edited this page Feb 10, 2024
·
1 revision
챗봇이 텔레그램 서버로부터 메세지를 읽어오기 위한 방법으로는 롱 폴링, 웹훅 방식이 있다. 롱 폴링 방식은 챗봇 서버가 텔레그램 서버로부터 메세지를 가져오는 방식이고, 웹훅 방식은 텔레그램 서버가 챗봇 서버로 메세지를 보내주는 방식이다.
새로운 메세지가 있는지 텔레그램 서버를 지속적으로 호출하여 확인하는 방식을 Polling 이라 한다. 하지만, 실시간에 가깝게 새 메세지를 확인하기 위해 매우 짧은 주기로 텔레그램 서버를 계속 호출하는건 비효율적이다. Long Polling 방식은, 메세지가 있는지 확인하는 request 를 보낸 뒤, response를 받을 때까지 기다리는 방식이다. 새 메세지가 없다면 request를 보낸 커넥션이 열린 채로 지속될 것이다. (다만, 실제 커넥션은 몇 시간동안 지속되지는 않고, 보통 30초 정도 주기로 재호출한다.)
Polling

Long Polling

웹훅 방식은, 새로운 메세지가 있을 경우 텔레그램 서버가 챗봇서버에 메세지가 왔다고 알려주는 방식이다. 단 알림을 받는 서버는 퍼블릭이어야 한다.
- Long polling 방식은 심플하다. 도메인이나 퍼블릭 URL이 필요없고 SSL 인증서도 필요없다. 수신할 메세지의 양을 조절할 수 있다. 유지보수하기 쉽다.
- Webhook 방식은 저렴하다. 텔레그램 서버에 확인하는 네트워크 요청 비용을 아낄 수 있다. 하지만 잠재적인 문제가 더 많다.