Apakah whatsapp menggunakan mqtt
Apakah whatsapp menggunakan mqtt
Di balik layar aplikasi obrolan
Ada banyak aplikasi obrolan yang digunakan, tetapi hanya sedikit dari mereka yang menonjol karena kualitas yang mereka tanggung, yang menarik pengguna. Dua aplikasi obrolan terbaik dianggap sebagai Facebook Messenger dan WhatsApp. Meskipun perusahaan -perusahaan ini berhati -hati tentang arsitektur aplikasi mereka, saya berhasil menemukan potongan -potongan informasi dari artikel dan forum blog. Ini adalah komposisi dari mereka, dan fakta -fakta ini dapat ketinggalan zaman karena semua aplikasi ini cenderung sering diperbarui.
1. Facebook Messenger
Messenger Facebook adalah salah satu aplikasi obrolan paling populer. Beberapa tahun yang lalu, Messenger tidak dalam kondisi terbaiknya. Kinerja dan penggunaan ruangnya mulai tertinggal. Messenger menggunakan model berbasis tarik. Setiap kali aplikasi diakui dengan pemberitahuan push ringan tentang ketersediaan pesan baru, dan kemudian aplikasi akan menarik dan menerima respons JSON yang berisi tampilan percakapan. Namun kemudian, Messenger diperbarui untuk menggunakan model snapshot + delta berbasis push.
Poin -Poin Kunci:
- Messenger dulu memiliki masalah kinerja dan penggunaan ruang.
- Awalnya menggunakan model berbasis tarik untuk pengambilan pesan.
- Kemudian, ia beralih ke model snapshot + delta berbasis push.
Pertanyaan:
- Apa masalah dengan messenger pada awalnya?
- Model apa yang beralih ke Messenger untuk pengambilan pesan?
Jawaban:
- Messenger memiliki masalah kinerja dan penggunaan ruang.
- Messenger beralih dari model berbasis tarik ke model snapshot + delta berbasis push.
2. Ada apa
WhatsApp didasarkan pada tumpukan Lyme/Lyce.
Di belakang layar WhatsApp, salah satu hal yang paling menarik dan penting adalah backend yang ditulis di Erlang. Erlang memiliki kontribusi besar untuk menjadikan WhatsApp salah satu aplikasi obrolan terbaik di dunia.
“Mengapa Erlang?”
Erlang adalah bahasa pemrograman tujuan umum, bersamaan. Area di mana Erlang diketahui berguna adalah menangani banyak koneksi dan pesan perutean yang diberikan beberapa aspek dari pesan tersebut. Karena Erlang menunjukkan kinerja yang hebat dalam skenario ini, sebagian besar aplikasi terkait telekomunikasi menggunakan Erlang dalam implementasinya.
Implementasi awal server WhatsApp dilakukan menggunakan Ejabberd, yang merupakan server pesan instan Jabber/XMPP open-source yang ditulis di Erlang. Protokol pesan yang digunakan untuk implementasi adalah XMPP (perpesanan yang dapat diperluas dan protokol keberadaan).
Aspek penting lainnya dari aplikasi obrolan adalah database. Sebagian besar waktu, database dapat menjadi hambatan kinerja dalam aplikasi pesan waktu nyata. Whatsapp menggunakan mnesia, yang dikenal sebagai dbms komunikasi terdistribusi real-time. Salah satu aspek penting dari mnesia adalah bahwa itu dapat dikonfigurasi ulang saat runtime.
Meskipun WhatsApp dianggap cukup sederhana jika dibandingkan dengan layanan messenger seperti Facebook Messenger, desainnya bukan yang sederhana. Diagram berikut menunjukkan pandangan yang sangat abstrak tentang arsitektur WhatsApp.
Otomatisasi Rumah Berbasis WhatsApp: Bridging Protokol dengan MQTT
Dalam artikel ini, kami akan mengendalikan perangkat yang tidak mendukung WhatsApp tetapi mendukung protokol komunikasi lainnya seperti MQTT, TCP, IMAP, dll. Jika sebuah rumah dipasang dengan perangkat otomatisasi rumah yang tidak mendukung WhatsApp, kami akan berkomunikasi dengan perangkat ini (pengontrol) menggunakan protokol yang didukung oleh perangkat ini. Dengan demikian, kami akan dapat mengontrol peralatan rumah tangga yang terhubung ke perangkat tersebut.
Komponen diperlukan:
- WhatsApp API yang berbasis di Python – Yowsup
- Perpustakaan MQTT – Paho
- ID Python
- Ide Arduino
Wawasan Teknis:
Bridging protokol juga dapat mengontrol perangkat yang tidak mendukung WhatsApp API. Ini berarti kami hanya akan mengirim data dari satu protokol ke protokol lainnya. Artikel ini akan mendemonstrasikan MQTT dan WhatsApp Bridge untuk mengontrol perangkat.
Diagram blok:
Semua komunikasi akan melalui skrip Python, yang diinstal pada sistem berbasis Linux. Skrip Python akan memiliki perpustakaan WhatsApp API dan MQTT untuk berkomunikasi dengan kedua protokol. Skrip dapat mengirim dan menerima pesan di whatsapp dan mqtt.
Pertanyaan:
- Komponen apa yang diperlukan untuk otomatisasi rumah berbasis whatsapp dengan MQTT?
- Apa tujuan menjembatani protokol dalam otomatisasi rumah?
Jawaban:
- Komponen yang diperlukan untuk otomatisasi rumah berbasis WhatsApp dengan MQTT adalah WhatsApp API berbasis Python (yowsup), MQTT Library (Paho), Python ID, dan Arduino IDE.
- Bridging Protokol memungkinkan komunikasi dan kontrol perangkat yang tidak mendukung WhatsApp API dengan mengirim data dari satu protokol (e.G., Mqtt) ke yang lain.
Apakah whatsapp menggunakan mqtt
Setelah koneksi berhasil, kami dapat mengirim pesan menggunakan ini
menerbitkan.single (topik, message_data, hostname =”makelar.Hivemq.com”)
Di balik layar aplikasi obrolan
Ada banyak aplikasi obrolan yang digunakan. Tetapi hanya sedikit dari mereka yang menonjol karena kualitas yang mereka tanggung yang menarik pengguna. Dua aplikasi obrolan terbaik itu dianggap sebagai Facebook Messenger dan WhatsApp. Meskipun perusahaan -perusahaan ini terpisah tentang arsitektur aplikasi mereka, saya berhasil menemukan sedikit informasi dari artikel dan forum blog. Ini adalah komposisi dari mereka dan fakta -fakta ini dapat ketinggalan zaman karena semua aplikasi ini cenderung sering diperbarui.
1. Facebook Messenger
Facebook’S Messenger adalah salah satu aplikasi obrolan paling populer. Beberapa tahun yang lalu, Messenger bukan’t di atasnya’Bentuk terbaik. Dia’S Penggunaan Kinerja dan Ruang mulai tertinggal. Messenger menggunakan model berbasis tarik. Setiap kali, aplikasi ini diakui dengan pemberitahuan push yang ringan tentang ketersediaan pesan baru dan kemudian aplikasi akan menarik dan menerima respons JSON berat yang berisi tampilan percakapan. Tapi kemudian Messenger diperbarui untuk menggunakan model snapshot + delta berbasis push.
MQTT adalah protokol konektivitas mesin-ke-mesin (M2M). Itu dirancang sebagai transportasi pesan publikasi/berlangganan yang sangat ringan – MQTT.org
Perubahan menarik lainnya yang telah dilakukan di Infrastruktur Messenger adalah beralih dari JSON ke Penghematan. Perubahan besar ini telah menyebabkan pengurangan ukuran muatan sebesar 50%.
Telah ada perbaikan signifikan yang dilakukan di sisi yang lebih baik juga. Sebelumnya setiap pesan ditulis ke tingkat penyimpanan tradisional sebelum mengirim Messenger pemicu untuk membaca pesan dari tingkat penyimpanan yang membuat penskalaan menjadi masalah. Tetapi prosesnya sepenuhnya diganti dengan menggunakan implementasi antrian yang dipesan yang dibuat oleh Facebook itu sendiri yang disebut “Iris”. Salah satu fitur yang menarik dari IRIS adalah penggunaan pointer yang memfasilitasi sinkronisasi pesan antara messenger dan tingkat penyimpanan. Gambar berikut dengan jelas menunjukkan bagaimana sinkronisasi pesan terjadi di messenger
Prosedur yang dijelaskan di atas telah dapat menghapus ketergantungan pengiriman pesan pada ketersediaan dan kecepatan penulisan tingkat penyimpanan yang digunakan. Iris menyimpan pesan sementara di dalamnya’S Backing Storage sampai semua pesan disinkronkan dengan benar.
Fakta menarik lainnya adalah, penyimpanan dukungan iris telah dibangun menggunakan mysql dan flash.
2. ada apa
WhatsApp didasarkan pada tumpukan Lyme/Lyce.
Di belakang layar WhatsApp, salah satu hal yang paling menarik dan penting adalah backend yang ditulis di Erlang. Erlang memiliki kontribusi besar untuk menjadikan WhatsApp salah satu aplikasi obrolan terbaik di dunia.
Mengapa Erlang ?
Erlang adalah bahasa pemrograman tujuan umum, bersamaan. Area di mana Erlang dikenal bermanfaat
> Menangani banyak koneksi
> Pesan perutean yang diberikan beberapa aspek pesan
Karena Erlang menunjukkan kinerja yang hebat dalam skenario yang diberikan, sebagian besar aplikasi terkait telekomunikasi menggunakan Erlang dalam implementasinya.
Implementasi awal server whatsapp dilakukan dengan menggunakan ejabberd. Yang merupakan server pesan instan Jabber/XMPP Open Source yang ditulis di Erlang. Protokol perpesanan yang digunakan untuk implementasi adalah XMPP (perpesanan yang dapat diperluas dan protokol keberadaan).
Aspek penting lainnya dari aplikasi obrolan adalah database. Sebagian besar waktu, database dapat menjadi hambatan kinerja dalam aplikasi pesan waktu nyata. Whatsapp menggunakan mnesia yang dikenal sebagai dbms komunikasi terdistribusi realtime. Salah satu aspek penting dari mnesia adalah bahwa itu dapat dikonfigurasi ulang dalam runtime.
Meskipun whatsapp dianggap cukup sederhana jika dibandingkan dengan layanan messenger seperti facebook messenger, itu’S DESIGN ISN’t yang sederhana. Diagram berikut menunjukkan pandangan yang sangat abstrak tentang arsitektur WhatsApp,
Otomatisasi Rumah Berbasis WhatsApp: Bridging Protokol dengan MQTT
Dalam artikel ini, kami akan mengendalikan perangkat yang tidak mendukung WhatsApp tetapi mendukung protokol komunikasi lainnya seperti MQTT, TCP, IMAP, dll. Jika sebuah rumah dipasang dengan perangkat otomatisasi rumah yang tidak mendukung WhatsApp, kami akan berkomunikasi dengan perangkat ini (pengontrol) menggunakan protokol yang didukung oleh perangkat ini.
Dengan demikian, kami akan dapat mengontrol peralatan rumah tangga yang terhubung ke perangkat tersebut.
Diperlukan komponen
Diperlukan Alat/ Perpustakaan
WhatsApp API yang berbasis di Python-Yowsup
Perpustakaan MQTT – Paho
ID Python
Ide Arduino
Wawasan teknis
Bridging protokol juga dapat mengontrol perangkat yang tidak mendukung WhatsApp API. Ini berarti kami hanya akan mengirim data dari satu protokol ke protokol lainnya. Artikel ini akan mendemonstrasikan MQTT dan WhatsApp Bridge untuk mengontrol perangkat.
Diagram blok
Gambar 1 WhatsApp dan MQTT Protocol Bridging
Semua komunikasi akan melalui skrip Python, yang diinstal dalam sistem berbasis Linux. Skrip Python akan memiliki WhatsApp API dan MQTT Library untuk berkomunikasi dengan kedua protokol.
Skrip dapat mengirim dan menerima pesan di whatsapp dan mqtt.
Mikrokontroler (ATmega 328p) terhubung ke peralatan rumah melalui sirkuit relai. Untuk tujuan komunikasi, ESP terhubung ke mikrokontroler.
ESP diinstal dengan kode yang menerima pesan pada topik tertentu dan mengirimkan perintah ke mikrokontroler melalui serial UART.
Jadi, sekarang ketika ada pengguna yang mengirim pesan di whatsapp, ia pergi ke mikrokontroler melalui skrip python kami.
Diagram Sirkuit
Papan ini terhubung ke sakelar lampu dengan sirkuit relai. Kami juga dapat mengambil papan Arduino Uno alih -alih Dewan Dewan 328 Kustomisasi kami.
Bagaimana sistem bekerja
Ketika pengguna mengirim pesan ke sistem Linux kami di WhatsApp, skrip membaca pesan. Perangkat IoT, yang mendukung protokol MQTT, mendengarkan pesan pada topik tertentu. Pesan -pesan ini memerintahkan perangkat untuk menghidupkan dan mematikan alat.
Jadi, sekarang pesan yang dibaca oleh skrip Python dipindai untuk perintah jika ditemukan. Perintah khusus dikirim ke perangkat pada protokol MQTT. Saat perangkat membaca perintah -perintah itu, itu bertindak atasnya dengan memutar pin tinggi (aktif), rendah (mati)
Memahami Kode Sumber
Kami memiliki dua jenis kode sumber, satu untuk Arduino + ESP dan lainnya untuk skrip Python yang diinstal di Linux.
Kode untuk Arduino
Arduino diinstal dengan kode yang menerima data tentang serial. Saat string spesifik diterima seperti “PADA” itu akan menyalakan pin relai (tinggi) dan saat menerima “MATI” itu mematikan relay.
if (rec == “PADA”)
DigitalWrite (relay, tinggi);
Serial.mencetak(“Relay aktif”);
rec = “”;
>
if (rec == “MATI”)
DigitalWrite (relay, rendah);
Serial.mencetak(“Relay tidak aktif”);
rec = “”;
>
Kode untuk ESP
ESP terhubung dengan Arduino di port serial dan juga berlangganan pada topik MQTT untuk menerima data darinya. Pada dasarnya, ini mengirimkan data yang diterima pada topik MQTT ke port serial dan data dari serial ke topik MQTT.
Untuk mengetahui lebih banyak tentang ESP dan MQTT, lihat artikel kami sebelumnya.
Kode untuk skrip Python
Skrip python diinstal dengan “Yowsup” Whatsapp API untuk membaca dan mengirim pesan dari whatsapp. Ada dua file dalam skrip ini berlari.py Dan lapisan.py.
Memahami File Run.py
Kami akan menghubungi perpustakaan kami di bagian atas file
dari yowsup.Tumpukan Impor YowStackBuilder
dari yowsup.lapisan.Auth Import Autherror
dari yowsup.Lapisan mengimpor yowlayerevent
dari yowsup.lapisan.Jaringan Impor YowneTworkLayer
dari yowsup.Env Impor yowsupenv
Kami juga akan melampirkan file layer di atas karena kelas utama “Echolayer” ada di dalam file itu.
Dari Echolayer Impor Lapisan
Kami dapat memberi nama file layer apa saja, tetapi kami harus menaruh nama yang sama di sini.
Di dalam py, Kami akan mendeklarasikan variabel utama kami untuk kata sandi dan acara yang ingin kami lakukan.
kredensial = (“91xxxxxxxxxx”, “Hkhwvw5/wnr493hxk8nkl/htpno =”)
Sekarang kami meneruskannya ke lapisan dan membangun tumpukan. Juga, loop yang akan menjaga koneksi tetap disebut.
tumpukan.SetCredentials (kredensial)
tumpukan.BroadcastEvent (YowlayerEvent (YowneTworkLayer.Event_state_connect)) #sending sinyal connect
tumpukan.loop () #Ini adalah program Mainloop
Memahami lapisan file.py
File ini berisi perpustakaan protokol untuk MQTT dan mampu menerima pesan dari whatsapp.
Mengecilkan bagaimana pesan diterima dari whatsapp
File ini berisi kelas yang akan menerima pesan apa pun yang masuk ke nomor ini, dan itu akan menjadi entitas callback sehingga loop lain dapat dijalankan di dalam file.
@Protocolentitycallback (“pesan”)
Def onMessage (self, messageProtocolentity):
jika benar:
Data pesan dan formulir angka dari mana pesan datang dapat diperoleh di bawah ini.
incmming_message_data = messageProtocolentity.getbody ()
Ini akan mendapatkan badan pesan yang merupakan pesan yang sebenarnya. Itu akan disimpan dalam variabel string “incmomming_message_data”
incmomming_message_sender = MessageProtocolentity.dapat dari()
Baris ini akan menyimpan nomor kontak pesan masuk dalam variabel string “incmomming_message_sender”
Memahami lapisan MQTT untuk mengirim dan menerima
Pertama -tama, kami akan mengimpor perpustakaan yang diperlukan untuk MQTT.
Impor Paho.MQTT.Klien sebagai MQTT
Impor Paho.MQTT.Publikasikan sebagai Publish
Sekarang kami akan mendeklarasikan variabel bernama klien dengan klien MQTT.
Klien = MQTT.Klien()
Sekarang kita akan membuat dua callback fungsi 1. Untuk menerima pesan, 2. Melakukan sesuatu di koneksi yang berhasil.
klien.on_connect = on_connect
klien.on_message = on_message
Akhirnya, kami akan terhubung ke broker MQTT di port, dan memulai klien di dalam loop nonblocking
klien.Menghubung(“makelar.Hivemq.com”, 1883, 60)
klien.loop_start ()
Setelah koneksi berhasil, kami dapat mengirim pesan menggunakan ini
menerbitkan.single (topik, message_data, hostname =”makelar.Hivemq.com”)
Ketika ada pesan yang diterima di whatsapp, disimpan dalam string, dan kemudian string itu dipindai untuk beberapa kata kunci yang mendefinisikan pesan itu sebagai perintah untuk menyalakan/mematikan lampu.
Elif (“lampu menyala” di incmming_msg): #do sesuatu yang cocok
Jika kondisinya cocok, kami mengirim perintah kontrol ke broker MQTT.
menerbitkan.lajang(“ts/cahaya”, “PADA”, nama host =”makelar.Hivemq.com”)
Ketika pesan yang tidak diakui telah diterima, pesan di WhatsApp menjawab bahwa ini tidak valid.
Dan ini adalah bagaimana kita dapat menggunakan protokol menjembatani untuk mengontrol perangkat dengan whatsapp.
xanecs/aksioma
Komit ini bukan milik cabang apa pun di repositori ini, dan mungkin milik garpu di luar repositori.
Beralih cabang/tag
Tag cabang
Tidak bisa memuat cabang
Tidak ada yang bisa ditampilkan
Tidak bisa memuat tag
Tidak ada yang bisa ditampilkan
Nama sudah digunakan
Tag sudah ada dengan nama cabang yang disediakan. Banyak perintah git menerima nama tag dan cabang, jadi menciptakan cabang ini dapat menyebabkan perilaku yang tidak terduga. Apakah Anda yakin ingin membuat cabang ini?
Batalkan Buat
- Lokal
- Codespaces
Https github cli
Gunakan git atau checkout dengan SVN menggunakan URL Web.
Bekerja cepat dengan CLI resmi kami. Pelajari lebih lanjut tentang CLI.
Masuk
Silakan masuk untuk menggunakan codespaces.
Meluncurkan Github Desktop
Jika tidak ada yang terjadi, unduh desktop github dan coba lagi.
Meluncurkan Github Desktop
Jika tidak ada yang terjadi, unduh desktop github dan coba lagi.
Meluncurkan Xcode
Jika tidak ada yang terjadi, unduh xcode dan coba lagi.
Meluncurkan kode studio visual
Codespace Anda akan dibuka setelah siap.
Ada masalah mempersiapkan codespace Anda, coba lagi.
Komit terbaru
Statistik git
File
Gagal memuat informasi komit terbaru.
Pesan komit terbaru
Melakukan waktu
Baca aku.md
Axiom adalah program Python yang terhubung ke server MQTT dan menyediakan antarmuka ke layanan pesan WhatsApp.
- Klone repo ini.
- Instal dependensi
Pip Instal Yowsup2 Paho-MQTT
- Edit waserver/config.py . Kredensial dapat diperlukan dari YOWSUP2 CLI. Lihat disini.
- Berlari
python waserver/waserver.py
- Buat waserver/config-prod.py
- Bangun gambar dengan DockerFile yang disediakan . File konfigurasi terpisah memungkinkan konfigurasi dev/produksi yang berbeda.
Untuk menerima pesan berlangganan whatsapp/masuk . Pesan akan terlihat seperti ini:
< "telepon": "4915112345678", "pesan": "Halo dari manusia!" >
Nomor telepon dalam contoh ini biasanya dieja +49 151 12345678 . Untuk pesan grup, nomor telepon ada di Formulir 4915112345678-1400000000 (Nomor Telepon Pembuat Grup dan Cap Timestamp Penciptaan).
Untuk mengirim pesan, publikasikan ke whatsapp/outgoing:
< "telepon": "4915112345678", "pesan": "Halo dari bot!" >
Saat ini hanya ada pada perintah yang diterapkan
Untuk menerima info grup (anggota, judul), publikasi ke WhatsApp/CMD
< "CMD": "group_info", "telepon": "4915112345678-1400000000", "Callback": "any_string_here" >
Callback akan digunakan untuk mengidentifikasi respons terhadap perintah ini. Disarankan untuk menggunakan UUID untuk ini. Responsnya akan diterbitkan ke topik WhatsApp/IQ:
< "CMD": "group_info", "Callback": "any_string_here", "Groupid": "4915112345678-1400000000", "Peserta": < "4915112345678": "admin", "4915187654321": batal, >, "subjek": "Grup contoh" >
Tentang
MQTT-INTERFACE untuk layanan pesan WhatsApp
Bagaimana WhatsApp mengantri pesan Anda?
Elo di sana, sobat! Dia’S akan menjadi hampir dua tahun pandemi dalam beberapa bulan, dan cara kita mengadaptasi gaya hidup kita, oh nak! Kami semua tetap terhubung dan bahkan menyelesaikan pekerjaan kami menggunakan berbagai platform pesan. Penggunaan beberapa platform, termasuk whatsapp, instagram, dan facebook, meningkat secara signifikan. Whatsapp adalah orang dengan penggunaan tertinggi, dan dengan India menjadi whatsapp’Pasar terbesar tahun ini! Tetapi tahukah Anda bahwa WhatsApp menggunakan salah satu struktur data yang sangat mendasar, antrian, yang digunakan oleh platform pesan ini untuk menyampaikan pesan Anda?
Apa itu antrian?
Antrian, seperti namanya, persis seperti yang ada di kehidupan nyata. Antrian memiliki dua ujung, kepala dan ekor, dan item ditambahkan hanya di ujung ekor dan dilepas dari ujung kepala. Bayangkan sekelompok orang menunggu dalam antrian untuk mendapatkan pizza, dan orang pertama yang sampai di sana, saya.e., yang pertama di baris, akan diberikan preferensi dan akan menjadi orang yang menerima pizza atau menjadi “didorong keluar.” Konsep ini secara teknis dikenal sebagai FIFO atau pertama di First Out.
Apa itu antrian pesan?
Sebagai indikasi judul, antrian pesan adalah antrian yang penuh dengan pesan. Layanan asinkron ini digunakan untuk mentransfer pesan atau data antara dua orang atau sekelompok orang. Orang yang mengirim pesan ke antrian adalah produsen, dan orang yang menerima pesan adalah konsumen. Dari antrian’Sudut pandang, pesan hanyalah kumpulan byte dan dapat berupa apa saja dari pesan teks normal atau pesan yang berisi pelanggan’I ID pesanan atau bahkan pesan kesalahan.
- Dalam sistem antrian pesan, ada beberapa server yang dikenal sebagai broker. Pialang ini sangat dapat diandalkan dan dapat diskalakan, dan mereka membentuk cluster. Setelah pesan diproduksi atau dikirim dari sisi produser, pesan disimpan dalam antrian pesan sampai konsumen tersedia untuk mengambil pesan.
- Setelah konsumen atau penerima tersedia untuk mengambil pesan, antrian mendorong pesan ke konsumen dan menunggu konsumen untuk memproses pesan sepenuhnya.
- Setelah konsumen memproses pesan, itu sepenuhnya dihapus dari antrian.
Solusi Antrian Pesan
Ada beberapa perangkat lunak open-source dan gratis yang digunakan untuk antrian pesan.
Kafka: Apache Kafka’Sistem Pesan S adalah sistem berlangganan yang dipikirkan dengan matang dan sistem antrian yang dapat menangani volume data yang sangat tinggi. Kafka toleran terhadap kesalahan dan terus-menerus memantau node melalui berbagai layanan, membuatnya efisien untuk bekerja dengannya.
Kelinci MQ: RabbitMQ adalah salah satu sistem broker pesan terbuka yang paling banyak digunakan yang awalnya mengimplementasikan Protokol Antrian Pesan Lanjutan (AMQP). Antrian adalah satu utas dalam sistem ini, dan satu antrian dapat menangani hingga 50.000 pesan.
Amazon SQS: Layanan Antrian Sederhana Amazon adalah sistem antrian pesan terdistribusi yang digunakan untuk memisahkan berbagai layanan mikro dan aplikasi tanpa mengharuskan mereka untuk mempertahankan antrian pesan mereka. Amazon SQS juga menyediakan API layanan web yang dapat diakses pengguna menggunakan bahasa pemrograman umum.
ActiveMQ: ActiveMQ adalah sistem broker pesan lain yang ditulis di Java dan memiliki klien layanan pesan Java lengkap. Ini memiliki dukungan Ajax dan REST bawaan dan mendukung berbagai protokol seperti AMQP, MQTT, Stomp, dll.
Bagaimana whatsapp mengirimkan pesan Anda?
Sebelum kita membahas bagaimana pesannya antri di whatsapp, biarkan’s Memahami aplikasi itu sendiri. Kode Menggunakan Bahasa Pemrograman Erlang, WhatsApp adalah yang paling banyak digunakan dengan hampir 2 miliar pengguna bulanan. WhatsApp menggunakan pesan yang dapat diperluas dengan sumber terbuka dan protokol keberadaan (XMPP) untuk memfasilitasi pesan instan antara dua pihak. Awalnya, whatsapp dimulai dengan menggunakan server ejabbered. Dengan sejumlah besar pengguna setiap hari, sangat penting bahwa server menangani beban secara efisien dan sistemnya dapat diandalkan. Di tahun -tahun, kode tersebut direstrukturisasi, beralih dari XMPP ke protokol yang dirancang secara internal dan memodifikasi beberapa komponen inti untuk meningkatkan dan mencapai kinerja server yang optimal.
Saat dan ketika Anda mengirim pesan, itu antri di server sampai penerima terhubung kembali untuk mengambil pesan ini. Jadi saat Anda mengirim sms teman Anda, dan jika mereka tidak’t memiliki akses internet untuk menerima pesan, pesan -pesan ini adalah antrian di server whatsapp, dan proses ini dikenal sebagai “Simpan dan teruskan” mekanisme. Hanya ketika penerima menerima pesan, mereka dihapus dari server dan dihapus dari antrian. Kemudian, ketika penerima memiliki koneksi internet, pesan -pesan ini dikirimkan kepada mereka atau diambil oleh penerima. Ketika penerima akhirnya mengakui bahwa pesan telah diterima, pengambilan pesan yang berhasil dikirim kembali ke server WhatsApp, dan ini adalah saat Anda melihat tanda centang ganda di sebelah pesan Anda.
Struktur data ini sangat panjang, dan memiliki pemahaman yang baik tentang ini akan membawa Anda juga jauh. Jadi lain kali guru Anda mulai membahas struktur data, perhatikan baik di sana. Ya? Oke?
Nah, sampai jumpa lain kali!