Bot telegram Webhook VS Long Poling, mana yang effisien?
Sebelum membuat bot telegram, kita harus paham dulu bagaimana mekanisme komunikasi antara server kita dengan server bot. Pemahaman Dapat membantu kita memilih mau lewat jalur mana kita berkomunikasi dengan server telegram.
Sejauh ini, metode yang paling banyak di gunakan adalah pendekatan long poling dan pendekatan webhook API. Keduanya mempunyai cara yang berbeda. Pendekatan menggunakan webhook adalah metode yang palling umum digunakan.
Webhook adalah mekanisme untuk mengirim data ke server target, atau di kenal juga dengan istilah callback. Pada kerjanya kita mendaftarkan URL host server kita ke telegram untuk dapat menerima update apabila ada notifikasi yang masuk seperti pengguna chat ke bot kita, ada orang bergabung ke grup.
Mekanisme ke dua menggunakan long poling, bot long poling bisa menggunakan getUpadates ke API telegram untuk mendapatkan pembaruhan terbaru. Bot kita harus terus-terusan meminta data ke telegram dalam interval yang sudah di tentukan. Kelemahan dari metode ini adalah latency yang cukup lama, karena bot harus meminta berulang-ulang ke koneksi HTTPS yang mempunyai latency yang sangat tinggi.
Titik node untuk server telegram yang berada di api.telegram.org berada di jerman, oleh karena itu jika di akses dari jarak yang lebih jauh menyebabkan response bot jadi lebih lama.
Penggunaan long poling biasanya menggunakan mekanisme TCP yang dimana server kita terhubung langsung ke server telegram, metode ini tidak menggunakan mekanisme HTTP standar.
Untuk dapat terhubung langsung server anda harus mempunyai mekanisme enkripsi MTProto, ini adalah pendekatan yang di gunakan dalam transfer enkripsi data telegram. Beberapa library yang menyediakan enkripsi MTProto dapat mendukung pembuatan bot anda.
PHP ada MadelineProto, Python ada Pyrogram, telethon, TgClient. Sedangkan untuk nodejs ada gramjs, mtproto, teleirc. Terakhir bahasa golang juga tidak ketinggalan ada go-telegram-bot-api, gotd, telebot
Metode long poling mempunyai kebutuhan akan sumber daya yang tinggi. Secara default long poling adalah mekanisme pemanggilan secara terus menerus ke server telegram untuk mendapatkan notifikasi terbaru. Apabila bot anda bekerja dengan banyak subcriber, bergabung dengan banyak grup publik yang ramai.
Tentu saja bot akan mengonsumsi sumber daya yang sangat besar, terutama dalam hal bandwidth. Bot yang bergabung pada grup telegram akan terus mengambil update data terkait aktifitas yang berada di grup dan channel publik dimana tempat bot bergabung. Semua aktifitas akan di download dengan mekanisme long poling.
Pendekatan menggunakan webhook jauh lebih effisien, tapi terbatas. Mekanisme webhook banyak di gunakan untuk bot telegram yang tidak membutuhkan akses eklusif yang lebih tinggi terhadap fitur telegram.
Dalam webhook telegram mampu mengirimkan koneksi bersamaan sesuai dengan nilai yang di tentukan, nilai default adalah 40 connection dan bisa up sampai 100 connection. Setiap pembaruahan dari webhook itu merupakan satu tindakan / action.
Sehingga apabiila ada 100 connection permintaan artinya bot kita hanya perlu memproses 100 data tersebut dalam satu waktu. Jauh lebih ringan, biasanya permintaan itu bisa lebih dari 100 kalau dalam dunia website.
Bot webhook jauh dapat di andalakan dibanding poling, bot dapat menghandle lebih banyak permintaan tanpa menyebabkan overload yang tinggi. Kalau dalam mekanisme long poling, ketika terjadi permintaan yang tinggi bot dapat menerima lebih banyak lagi karena aksesnya juga lebih tinggi dariapda Bot API.
Selain itu penggunaan algoritma enkripsi dapat meningkatkan beban komputasi untuk mendeskripsi dan mengenkripsi pesan telegram. Pilih pustaka yang ingin di gunakan berdasarkan fungsi dari bot yang akan anda buat, jangan cuma ikut-ikutan. Hasilnya akan lebih gurih dan enak hehe.
Saya menyediakan jasa pembuatan Managed bot telegram siap pakai. Bisa bikin bot custom sesuai keinginan sendiri, harga lebih murah bisa request sendiri contact @ryanx telegram.