Apakah whatsapp menggunakan soket
Memahami Arsitektur & Desain Sistem Whatsapp
Ringkasan
Enkripsi ujung ke ujung Whatsapp mungkin tidak melindungi privasi seperti yang diharapkan, meskipun keamanan teoretisnya. Artikel ini mengeksplorasi arsitektur dan desain sistem whatsapp, menjelaskan cara kerja dalamnya.
Poin -poin penting
1. roxdavirox/socket-whatsapp: Komit ini bukan milik cabang apa pun di repositori ini dan mungkin berasal dari garpu di luar repositori.
2. Nama sudah digunakan: Membuat cabang dengan nama yang sudah ada sebagai tag dapat menyebabkan perilaku yang tidak terduga. Pengguna diminta untuk mengkonfirmasi pembuatan cabang.
3. Meluncurkan Github Desktop: Jika tidak ada yang terjadi, pengguna disarankan untuk mengunduh desktop github dan coba lagi.
4. Meluncurkan Xcode: Jika tidak ada yang terjadi, pengguna disarankan untuk mengunduh xcode dan coba lagi.
5. Meluncurkan Kode Visual Studio: Pengguna diberitahu bahwa codespace mereka akan terbuka setelah siap. Jika ada masalah mempersiapkan codespace, mereka didorong untuk mencoba lagi.
6. Komitmen terbaru: Rincian komit terbaru yang dibuat untuk repositori ditampilkan.
7. Statistik git: Tinjauan Statistik Git untuk Repositori disediakan.
8. File: Informasi tentang file dalam repositori ditampilkan, termasuk kegagalan untuk memuat informasi komit terbaru.
9. Baca aku.MD: Deskripsi singkat dari Perpustakaan Baileys, yang merupakan simpul murni.JS Implementasi API Web Whatsapp tanpa perlu selenium atau browser lainnya. Menggunakan WebSocket langsung untuk berinteraksi dengan WhatsApp Web.
10. Penggunaan Baileys: Instruksi tentang cara menginstal bailey dari NPM dan mengimpornya ke kode diberikan.
Pertanyaan dan jawaban:
1. Apa tujuan komitmen roxdavirox/socket-whatsapp?
Tujuan komit ini tidak jelas karena bukan milik cabang mana pun di repositori dan mungkin dari garpu di luar repositori.
2. Masalah potensial apa yang mungkin muncul saat membuat cabang dengan nama yang sudah ada sebagai tag?
Membuat cabang dengan nama yang sudah ada sebagai tag dapat menyebabkan perilaku yang tidak terduga. Disarankan untuk mengkonfirmasi sebelum membuat cabang seperti itu.
3. Apa yang harus dilakukan jika tidak ada yang terjadi saat meluncurkan desktop github?
Jika tidak ada yang terjadi saat meluncurkan desktop github, disarankan untuk mengunduhnya dan mencoba lagi.
4. Apa yang harus dilakukan jika tidak ada yang terjadi saat meluncurkan XCODE?
Jika tidak ada yang terjadi saat meluncurkan XCODE, mengunduhnya dan mencoba lagi disarankan.
5. Tindakan apa yang harus diambil jika ada masalah mempersiapkan codespace saat meluncurkan kode Visual Studio?
Jika ada masalah yang mempersiapkan Codespace saat meluncurkan kode Visual Studio, yang terbaik adalah mencoba lagi.
6. Informasi apa yang disediakan bagian “komit terbaru”?
Bagian “Komitmen Terbaru” menampilkan detail komit terbaru yang dibuat untuk repositori.
7. Apa yang ditunjukkan bagian “Git Stats”?
Bagian “Git Stats” memberikan gambaran umum tentang statistik git untuk repositori.
8. Informasi apa yang disajikan di bagian “File”?
Bagian “File” menunjukkan informasi tentang file di repositori, termasuk kegagalan untuk memuat informasi komit terbaru.
9. Apa itu Bailey?
Baileys adalah simpul murni.Implementasi JS dari WhatsApp Web API. Ini memungkinkan komunikasi langsung dengan Whatsapp Web menggunakan Websocket, tanpa perlu browser seperti Selenium.
10. Bagaimana baileys dapat diinstal dan diimpor?
Baileys dapat diinstal dari NPM menggunakan perintah “NPM Instal GitHub: Adiwajshing/Baileys.”Ini kemudian dapat diimpor ke kode menggunakan” const whatsappweb = membutuhkan (‘baileys’).”
Pengalaman dan Rekomendasi Pribadi:
Dalam pengalaman pribadi saya, memahami arsitektur dan desain sistem WhatsApp sangat penting dalam mengembangkan aplikasi yang terintegrasi dengan platform. Baileys, menjadi simpul murni.Implementasi JS, telah membuatnya lebih mudah untuk berinteraksi dengan WhatsApp Web tanpa perlu alat otomatisasi browser seperti Selenium. Saya sangat merekomendasikan memanfaatkan perpustakaan semacam itu untuk siapa pun yang ingin membangun aplikasi di atas infrastruktur Whatsapp.
Memahami Arsitektur & Desain Sistem Whatsapp
Sementara enkripsi ujung ke ujung dapat membuat Anda merasa aman secara teori. Dalam praktiknya, enkripsi ujung ke ujung ISN’t sebagai pelindung privasi seperti yang diharapkan.
roxdavirox/socket-whatsapp
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
Reverse Engineered WhatsApp Web API di Node Murni.JS. Baileys tidak memerlukan selenium atau browser lainnya untuk menjadi antarmuka dengan WhatsApp Web, ia melakukannya secara langsung menggunakan WebSocket.
Terima kasih kepada Sigalor karena telah menulis panduan untuk merekayasa reverse web whatsapp dan terima kasih kepada Rhymen untuk pergi Implementasi.
Baileys sangat mudah digunakan:
- Instal dari NPM Menggunakan NPM Instal GitHub: Adiwajshing/Baileys
- Kemudian impor dalam kode Anda menggunakan
const Whatsappweb = memerlukan('Baileys')
membiarkan klien = baru Whatsappweb() klien.Menghubung()
klien.penangan.Onconnected = () => / * Saat Anda berhasil diautentikasi dengan server web whatsapp */ >
klien.penangan.Onunreadmessage = (pesan) => / * dipanggil saat Anda memiliki pesan yang belum dibaca yang tertunda atau menerima pesan baru */ >
klien.penangan.Onerror = (kesalahan) => / * dipanggil saat ada kesalahan */ >
klien.penangan.kehadiran = (pengenal, kehadiran) => / * dipanggil saat Anda menerima pembaruan tentang kehadiran seseorang */ >
klien.penangan.OnDisconnect = () => / * dipanggil saat internet terputus */ >
klien.penangan.Onunreadmessage = (M) => const MessageType = klien.getMessageType(M.pesan) // Dapatkan jenis pesan apa itu - teks, gambar, video >
klien.penangan.Onunreadmessage = (M) => const MessageType = klien.getMessageType(M.pesan) // Dapatkan jenis pesan apa itu - teks, gambar, video // Jika pesannya bukan pesan teks jika (MessageType !== Whatsappweb.MessageType.teks && MessageType !== Whatsappweb.MessageType.ExtendedText) klien.Decodemediamessage(M.pesan, "nama file") // ekstensi diterapkan secara otomatis .Kemudian (meta => menghibur.catatan(M.kunci.remotejid + "Terkirim media, disimpan di:" + meta.nama file)) .menangkap (berbuat salah => menghibur.catatan("Kesalahan dalam pesan decoding:" + berbuat salah)) > >
klien.Kirim pesan teks(pengenal, TxShessage)
Atau jika Anda ingin mengutip pesan lain:
klien.Kirim pesan teks(pengenal, TxShessage, QuotedMessage)
klien.sendMediamessage(pengenal, Mediabuffer, tipe media, info)
- Thumbnail dapat dihasilkan secara otomatis untuk gambar & stiker.
- Mediabuffer hanyalah buffer yang berisi isi media yang ingin Anda kirim
- Mediatype mewakili jenis pesan yang Anda kirim. Ini bisa menjadi salah satu dari yang berikut:
[ Whatsappweb.MessageType.gambar, // pesan gambar Whatsappweb.MessageType.video, // pesan video Whatsappweb.MessageType.audio, // pesan audio Whatsappweb.MessageType.stiker // pesan stiker ]
info = keterangan: "Halo!", // Keterangan untuk dikirim dengan media (tidak dapat dikirim dengan stiker) Thumbnail: batal, /* harus menjadi jpeg basis 64 yang dikodekan jika Anda ingin mengirim jempol khusus, atau diatur ke null jika Anda tidak ingin mengirim thumbnail. Jangan masukkan bidang ini jika Anda ingin secara otomatis menghasilkan ibu jari */ mimetype: "Aplikasi/PDF", /* Tentukan jenis media (opsional untuk semua jenis media kecuali dokumen), untuk file pdf => diatur ke "Aplikasi/PDF", untuk file txt => diatur ke "Application/txt" dll. */ gif: BENAR // Hanya berlaku untuk pesan video, jika video harus diperlakukan sebagai gif >
klien.SendReadReceipt(pengenal, MessageID)
klien.UPDATEPRESENCE(pengenal, kehadiran)
Ini membuat orang dengan ID mengetahui status Anda. di mana kehadiran bisa menjadi salah satu dari yang berikut:
statis Kehadiran = tersedia: "tersedia", // "on line" tidak tersedia: "Tidak tersedia", // offline menyusun: "menyusun", // "mengetik. " rekaman: "rekaman", // "Perekaman. " berhenti: "berhenti" // Saya tidak tahu >
const authjson = klien.base64encodedauthinfo()
const authjson = Json.parse( FS.ReadFileSync("AUTH_INFO.json ") ) klien.Gabung(authjson)
klien.ISONWHATSAPP ("[countrycode] [some10digitnumber] @S.ada apa.bersih") .Kemudian ((ada, pengenal) => jika (ada) menghibur.catatan(pengenal + "ada di whatsapp") > kalau tidak menghibur.catatan(pengenal + "Tidak ada di whatsapp :(") > >)
Lakukan Contoh & Jalankan Contoh.JS untuk melihat contoh penggunaan semua fungsi ini. Untuk menjalankan contoh skrip, unduh atau klon repo dan kemudian ketik yang berikut di terminal:
- CD Path/to/Baileys/Example
- Contoh simpul.JS
Saya sama sekali tidak berafiliasi dengan whatsapp. Ini ditulis untuk tujuan pendidikan. Gunakan atas kebijaksanaan Anda sendiri.
Memahami Arsitektur & Desain Sistem Whatsapp
Pernahkah Anda bertanya -tanya bagaimana cara kerja WhatsApp? Kami’ve mempelajari desain sistem tingkat tinggi dan arsitektur whatsapp’S Teknologi. Menyelam untuk melihat apa yang kami pelajari.
Tag Jenis Konten
Daftar isi
Aplikasi mana yang memiliki lebih dari 2.5 miliar pengguna aktif, lebih dari 5 miliar unduhan, dan merupakan aplikasi paling populer di lebih dari 100 negara?
Petunjuk: Periksa judul artikel.
Ya itu’s benar. Whatsapp adalah layanan pesan paling populer di dunia. Menurut Mark Zuckerberg, lebih dari 100 miliar pesan dikirim melalui whatsapp setiap hari.
Dengan lalu lintas yang hampir tidak memiliki astronomi, seseorang bisa’T bantu tetapi heran bagaimana WhatsApp bekerja – desain sistemnya, arsitektur server, teknologi . Bagaimana cara menangani begitu banyak pengguna dan pesan bersamaan? Kerangka kerja dan bahasa pemrograman seperti apa yang memungkinkan skala seperti itu? Bagaimana mereka menjaga semua data itu aman? Begitu banyak pertanyaan!
Dalam artikel ini, kita akan menyelam secara mendalam ke whatsapp’Arsitektur dan desain sistem. Kami’ll jawab semua pertanyaan yang disebutkan di atas dan banyak lagi.
Jika kamu’Saya pernah bertanya -tanya tentang anjing teratas di dunia aplikasi obrolan, terus membaca.
Penafian: Kami menjelajahi internet untuk mengumpulkan setiap sumber daya pada desain arsitektur whatsapp dan telah menyusun dan merangkumnya di sini. Sepengetahuan kami, informasi ini akurat. Namun, karena perusahaan sering memperbarui tumpukan teknologi mereka, informasi ini dapat berubah.
WhatsApp Front-End Tech Stack
Membiarkan’s Mulailah dengan frontend dan jalankan jalan kami ke perangkat keras di backend.
Bagian pertama dari desain sistem whatsapp yang berinteraksi dengan pengguna adalah aplikasi seluler atau web. Whatsapp mendukung hampir semua platform. Ini memiliki aplikasi iOS, aplikasi Android, aplikasi desktop, aplikasi web, dan aplikasi Windows Phone. Hingga 2017, Anda bahkan bisa menggunakan whatsapp di blackberry.
Dengan begitu banyak platform yang didukung, Anda mungkin telah menebak bahwa WhatsApp akan menjadi aplikasi hibrida. Tapi, pada kenyataannya, itu’S tidak. Mereka benar -benar membangun aplikasi asli untuk setiap platform. Berikut daftar semua platform yang didukung dengan bahasa front-end yang digunakan untuk membangun masing-masing:
Bagaimana toko Whatsapp mengobrol secara lokal
Selain bahasa pemrograman itu sendiri, teknologi penting lain yang digunakan WhatsApp di frontend adalah database SQLite. Sqlite adalah basis data relasional yang berdiri sendiri, mandiri, dan mandiri yang dimaksudkan untuk tertanam ke dalam aplikasi-yang berarti hidup di perangkat Anda. Whatsapp menggunakannya untuk menyimpan percakapan. Karena akan membuang -buang sumber daya untuk mengunduh semua pesan dari cloud setiap kali Anda membuka aplikasi, WhatsApp memilih untuk menyimpan pesan secara lokal. Faktanya, WhatsApp hanya menyimpan pesan sampai diterima pada titik mana mereka dihapus.
Protokol pesan mana yang digunakan whatsapp?
WhatsApp menggunakan versi XMPP yang sangat dimodifikasi pada server Ejabberd (lebih lanjut tentang itu nanti) untuk berkomunikasi dengan klien.
XMPP pada klien membuka soket SSL ke server whatsapp. Semua pesan yang dikirim antri di server sampai klien terbuka atau terhubung kembali ke soket ini untuk mengambil pesan. Setelah pesan berhasil diambil oleh klien, status keberhasilan dikirim kembali ke server whatsapp. Server kemudian meneruskan status ini ke pengirim asli; memberi tahu mereka bahwa pesan itu diterima dengan menambahkan “Tanda cek” ikon di sebelah pesan yang berhasil dikirim.
Perlu diingat bahwa, sementara XMPP adalah salah satu protokol pesan paling populer untuk aplikasi obrolan, itu jelas bukan satu -satunya pilihan untuk memilih protokol pesan.
Teknologi Enkripsi WhatsApp
WhatsApp menggunakan enkripsi ujung ke ujung. Idealnya, ini berarti bahwa hanya pengirim asli dan penerima yang sebenarnya dari pesan yang dapat membaca pesan dalam teks biasa.
Saat Anda mengirim pesan, itu dienkripsi menggunakan protokol enkripsi tertentu (lebih lanjut tentang itu berikutnya). Whatsapp kemudian menyimpan pesan terenkripsi ini di server mereka sampai itu’S dikirim ke penerima. Setelah pengiriman, perangkat penerima mendekripsi pesan kembali ke pesan yang dapat dibaca, Plaintext menggunakan kunci kriptografi yang unik. Di seluruh proses ini, WhatsApp tidak pernah mengetahui konten pesan Anda.
Ada apa’Teknologi enkripsi S disebut protokol enkripsi sinyal, yang dikembangkan oleh sistem terbuka bisikan menjadi protokol enkripsi yang modern, open-source, untuk sistem pesan asinkron.
Sementara enkripsi ujung ke ujung dapat membuat Anda merasa aman secara teori. Dalam praktiknya, enkripsi ujung ke ujung ISN’t sebagai pelindung privasi seperti yang diharapkan.
Whatsapp back-end tech stack
Membiarkan’s pindah ke backend.
Sepengetahuan kami, desain sistem back-end whatsapp saat ini terlihat seperti ini:
- Erlang adalah bahasa pemrograman utama
- Freebsd adalah sistem operasi
- Ejabberd adalah server aplikasi XMPP
- BALOK adalah mesin virtual berbasis erlang
- Mnesia adalah database berbasis erlang mereka
- Yaws adalah server web multimedia mereka
Membiarkan’S mengeksplorasi beberapa aspek yang lebih menarik dari whatsapp’Arsitektur S Back-End:
Erlang
Pilihan bahasa pemrograman WhatsApp sebagian besar yang memungkinkannya bekerja pada skala kolosal seperti itu.
Erlang adalah bahasa pemrograman fungsional yang berorientasi pada membangun sistem bersamaan, terukur, dan andal. Menggunakan model berbasis proses yang disebut “model aktor” di mana proses kecil dan terisolasi berkomunikasi satu sama lain melalui pesan. Proses ini dapat membuat proses baru, mengirim pesan dan memodifikasi status mereka sebagai tanggapan untuk menerima pesan.
Properti berbasis prosesnya memberi Erlang konkurensi, skalabilitas, dan keandalan yang sangat tinggi.
Proses -proses ini juga dapat berkomunikasi dengan proses di luar inti tempat ia berjalan. Ini memudahkan skala sistem secara horizontal (dengan menambahkan lebih banyak mesin) atau secara vertikal (dengan menambahkan lebih banyak inti). Terakhir, karena proses dapat berkomunikasi satu sama lain dan, yang lebih penting, restart satu sama lain, itu’s Mudah membangun sistem penyembuhan diri. Jika bug merusak suatu proses, proses lain dapat memulai kembali.
Freebsd
Pilihan teknis yang menarik oleh pendiri WhatsApp memilih FreeBSD sebagai sistem operasi alih -alih sistem yang lebih banyak digunakan (seperti Linux).
Brian Acton, salah satu pendiri WhatsApp, mengatakan ini dalam sebuah wawancara dengan Wired tentang keputusan:
“Linux adalah binatang kompleksitas. Freebsd memiliki keuntungan menjadi distribusi tunggal dengan koleksi port yang sangat bagus.”
Juga, ketika datang ke kinerja mentah, terutama dalam hal beban sistem per paket, tidak ada sistem operasi lain yang dapat mengalahkan freeBSD.
Namun, ketika sampai pada itu, alasan sebenarnya bahwa mereka memutuskan untuk menggunakan Freebsd mungkin karena kedua pendiri memiliki sejarah panjang bekerja dengannya di Yahoo!.
Ejabberd
Ejabberd adalah server XMPP open-source yang ditulis di Erlang. WhatsApp menggunakan versi XMPP yang dimodifikasi sebagai protokolnya untuk menangani pengiriman pesan. Bahkan server ejabberd yang digunakan whatsapp sangat disesuaikan untuk mengoptimalkan kinerja server.
Apa’S Tujuan Ejabberd?
Nah, ini menangani aspek routing, pengiriman, dan pesan pesan instan umum dari aplikasi. Fitur Ejabberd meliputi:
- Pesan satu-satu
- Obrolan grup
- Menyimpan dan meneruskan pesan offline
- Daftar Kontak dan Kehadiran
Mnesia
Untuk menyimpan data dan pesan sementara, WhatsApp menggunakan DBMS terdistribusi berbasis Erlang (Sistem Manajemen Database) yang disebut MNESIA. DBMS ini memberikan manfaat bahwa banyak database tradisional tidak’t seperti:
- Pencarian Kunci/Nilai Waktu Nyata
- Toleransi kesalahan tinggi
- Konfigurasi ulang dinamis
- Objek kompleks
Mnesia juga satu -satunya DBMS itu’s Ditulis di Erlang. Ini sendiri merupakan manfaat karena tidak ada perbedaan struktur data antara Erlang dalam aplikasi dan Erlang di DBMS. Coding, oleh karena itu, lebih cepat dan lebih eksplisit.
BALOK
Balok, kependekan dari “Bogdan’mesin abstrak erlang”, adalah mesin virtual yang mengkompilasi dan menjalankan kode sumber erlang. Balok ini dirancang khusus untuk aplikasi yang sangat bersamaan – sempurna untuk whatsapp’s use case. BALOK’S Rahasia Saus adalah proses berat ringan yang don’t berbagi memori dan dikelola oleh penjadwal. Penjadwal ini dapat mengelola jutaan proses di berbagai core. Ini membuat balok sangat terukur dan tahan terhadap kegagalan, seperti yang disebabkan oleh beban lalu lintas tinggi, pembaruan sistem, dan pemadaman jaringan.
Balok sangat penting untuk desain sistem WhatsApp sehingga tim WhatsApp telah menerbitkan banyak tambalan dan memperbaiki kode sumber inti.
PATEK
Yaws (server web lain) adalah server web berbasis Erlang yang ideal untuk konten dinamis. Whatsapp menggunakan yaws untuk menyimpan data multimedia. Yaws sendiri menggunakan websockets html5 yang menyederhanakan komunikasi dua arah dengan membangun koneksi yang andal dan cepat antara server dan aplikasi. Melalui penggunaan teknologi ini, WhatsApp dapat mengirim dan menerima data multimedia di seluruh miliaran perangkat – di dekat waktu nyata.
Komponen perangkat keras WhatsApp
Pada 2017, empat tahun setelah diakuisisi oleh Facebook, WhatsApp dikeluarkan dari SoftLayer IBM’S cloud dan dibawa ke Facebook’pusat data hak milik.
Yang kami ketahui adalah bahwa pada tahun 2014 WhatsApp membutuhkan sekitar 550 server dan lebih dari 11.000 inti yang menjalankan Erlang. Kami juga tahu whatsapp itu’Basis pengguna adalah “hanya” sekitar setengah miliar pada tahun 2014 dibandingkan dengan lebih dari 2 miliar pengguna yang dicapai pada tahun 2020. Jadi, dengan data itu dalam pikiran, kami akan membiarkan Anda membayangkan berapa banyak server dan core yang sekarang dibutuhkan Whatsapp. Kami membayangkan itu banyak.
Diagram Arsitektur WhatsApp
Cara termudah untuk mendapatkan pemahaman penuh tentang whatsapp’Desain arsitektur S, tentu saja, melalui diagram arsitektur whatsapp.
Mulai dari sisi kiri kami memiliki beberapa klien yang berbeda (aplikasi seluler dan web), yang masing -masing meng -host database SQLite lokal untuk menyimpan percakapan.
Klien menggunakan http websockets untuk mengirim dan mengambil data multimedia seperti gambar dan video dari server web yaws. Tapi, seperti yang Anda lihat, XMPP digunakan untuk benar -benar mengirim file -file dan pesan lainnya ke pengguna lain.
Ketika pesan XMPP dikirim, ia melewati serangkaian langkah yang digambarkan di atas. Pertama, dikirim ke whatsapp’s server kustom ejabberd yang berjalan pada balok dan freebsd. Server Ejabberd menyimpan pesan di tabel database mnesia di mana ia dimasukkan ke dalam antrian. Saat pengguna penerima membuka aplikasi, dengan demikian menghubungkan kembali ke soket, pesan dalam antrian akan dialihkan melalui server Ejabberd dan dikirim ke penerima. Setelah pengiriman yang berhasil dapat dikonfirmasi, pesan dihapus dari database mnesia.
Kesimpulan
Sementara kami tidak’tidak tahu spesifikasi yang tepat dari whatsapp’S Arsitektur teknis dan desain sistem, kita bisa mendapatkan ide bagus berdasarkan teknologi yang digunakan WhatsApp. Kami berharap artikel ini, menjelajahi desain arsitektur whatsapp, telah menjawab pertanyaan Anda yang membara. Sekarang Anda telah mendapatkan pemahaman tentang bagaimana server WhatsApp bekerja, mempelajari seperti apa penumpukan teknologi WhatsApp, dan bahkan memindai diagram arsitektur WhatsApp. Mungkin Anda merasa diberdayakan untuk mengambil proyek aplikasi obrolan sendiri.
Jika kamu’siap untuk memberikan whatsapp lari untuk uang mereka, daftar ke dasbor pengembang kami dan mulailah membangun aplikasi obrolan Anda secara gratis.
Tetapi perlu diingat bahwa banyak teknologi dalam tumpukan teknologi whatsapp secara khusus dipilih untuk kemampuan mereka untuk mengukur dan menangani konkurensi yang sangat tinggi.
Jika kamu’mencoba membangun aplikasi kencan atau telemedicine, (atau apa pun yang tidak’T perlu hampir seluruh dunia untuk online pada saat yang sama), Anda mungkin tidak perlu jumlah skala yang dilakukan WhatsApp.
Dengan kata lain, tumpukan teknologi whatsapp, walaupun sempurna untuk whatsapp, mungkin bukan solusi terbaik untuk Anda. Untuk mempelajari tentang arsitektur yang ideal dan tumpukan teknologi untuk aplikasi obrolan, kunjungi artikel ini.
Jika Anda masih memiliki pertanyaan tentang apa yang tepat untuk Anda, jangan ragu untuk berbicara dengan para ahli kami dan sebelum Anda mulai membangun aplikasi obrolan sendiri.
Hanya lapar untuk lebih? Berikut adalah beberapa sumber daya yang lebih bagus untuk diselami:
- Mitos enkripsi ujung ke ujung dalam aplikasi pesan
- Memahami Arsitektur & Sistem Desain Aplikasi Obrolan
- 11 Kesalahan konyol yang dibuat pengembang saat membuat aplikasi obrolan
tentang Penulis
Cosette Cressler adalah pemasar konten yang bersemangat yang berspesialisasi dalam SaaS, teknologi, karier, produktivitas, kewirausahaan dan pengembangan diri sendiri. Dia membantu menumbuhkan bisnis dari semua ukuran dengan menciptakan konten yang konsisten dan mudah dicerna yang menarik perhatian dan mendorong tindakan.
Apakah whatsapp menggunakan soket
Об этой страницental
Ы заре kondecedit. С помощю этой страницы с сожем определить, что запросы о о ancing оеет иенно ы,. Почем это мопо произойтиonya?
Ээ страница отображается в тех слчаях, когда автомически систе secara google ристрюи uman рисисilan рancing рancing рancing рancing рancing рancing рancing рancing рancing рancing рancing рancing рancing рancing рancing рancing рancing рии и menelepon которые наршают уловия исполззованияisah. Страница перестанет отображаться после то A, как эти запросы прекратяupanisah яяisah ancing ancing. До это A.
Источником запросов может слжить Врддносно secara п, пар иа бас00 иасазаз) ыылку запросов. Если Вы исползеет общий дсст в и итернет, проблем м ы ы ip ip ip00 ip ip ip ip ip uman ip ip ip ip ip ip uman ip ip ip ip ip ip ip uman ip ip ip ip ip ip ip ON ip ip ip ip ip ip ON. Обратитесь к своем системном аинистратору. Подробнее secara.
Пожет такжeda появлят secara, если Вы Вонот A рлжвввв dari рыч о оаilat оыч о оаilat, еами, ии же Водитedit запросы чень часто засто.
XMPP vs Websocket – yang akan digunakan untuk aplikasi?
Saat membangun aplikasi Instant Messaging (IM) yang responsif dan kaya fitur dari awal adalah tujuan Anda, bagian yang paling memprihatinkan adalah: mencari tahu protokol optimal untuk pengiriman pesan. Pilihan yang ditawarkan (keduanya) dijelaskan dalam beberapa menit.
Untuk mengatakannya dengan jelas, kami telah mencoba membawa pengetahuan substansial tentang protokol XMPP vs Websocket melalui posting ini kepada Anda. Dikenal karena fitur dan fasilitasnya yang berbeda, kedua protokol IM ini dapat membuka jalan untuk meningkatkan komunikasi instan saat kami bergerak maju dalam waktu. Namun, itu’tidak mudah dipilih karena seseorang mudah memiliki keunggulan dan keterbatasan yang berbeda.
Tujuan pembelajaran
Berlangganan berita terbaru
Mukhaddin Beshkov
Pakar terverifikasi
20+ tahun keahliannya dalam rekayasa sistem, analisis keamanan, arsitektur solusi. Mahir di OS (Windows, Linux, UNIX), pemrograman (C ++, Python, HTML/CSS/JS, Bash), DB (MySQL, Oracle, MongoDB, PostgreSQL). Terampil dalam skrip (PowerShell, Python), DevOps (Microservices, Container, CI/CD), pengembangan web (Node.JS, bereaksi, bersudut). Rekam jejak yang berhasil dalam mengelola sistem TI.
Definisi
XMPP – Semua Tentang Protokol
Digunakan untuk pertukaran fragmen xml b/w server-client duo, XMPP adalah salah satu protokol standar terbuka awal tentang komunikasi. Ini memiliki sejarah panjang lebih dari 20 tahun. Implementasinya yang efektif menuntut penggunaan wajib pengikatan transportasi yang sesuai.
Dalam model OSI, XMPP terutama berfungsi pada lapisan aplikasi yang menguraikan pola struktural XML (dari bagian atau sintaksnya). Untuk transmisi/menyampaikan, membutuhkan lapisan transportasi’ protokol’ (Http atau tcp) membantu.
eXTerkejut MEssaging & Pmenghargai PRotocol, kebanyakan, digunakan dalam perkembangan yang melibatkan aplikasi obrolan, aplikasi dengan fasilitas seperti panggilan suara/video, pengiriman instan teks/media kaya, dan panggilan video multi-bagian.
Pro
Dengan XMPP, Anda memiliki banyak manfaat untuk dinikmati saat Anda mengembangkan aplikasi IM. Contohnya:
- Fitur keamanan sibernya cukup maju untuk menjaga bahaya dunia digital terkemuka di teluk.
- Arsitektur yang terdesentralisasi memastikan bahwa itu dapat diakses oleh semua.
- Dukungan teknis yang ditawarkan dapat diandalkan dan efektif.
- Itu fleksibel dan memungkinkan pengguna akhir membuat perubahan dalam proses transmisi data sesuai kebutuhan proyek.
- Ini membantu dalam membangun koneksi (berkelanjutan) yang gigih.
- Ini menyederhanakan komunikasi server b/w dengan memungkinkan beragam arsitektur untuk mengirimkan data.
- Itu bereaksi segera terhadap keberadaan pengguna akhir. Karenanya, Anda’akan dapat mengetahui apakah pengguna akhir online atau offline.
Kontra
Bahkan jika XMPP memberikan banyak manfaat, itu tidak sempurna. Ada beberapa kelemahan atau kontra yang jelas dari protokol ini.
- Itu tidak memiliki mekanisme QoS
- Streaming atau komunikasi XML berbasis teks meningkatkan overhead operasional
- Transportasi konten sering terjadi tanpa sinkron
- Kadang -kadang, ada pesan dan/atau pesan instan dapat menyebabkan kelebihan server
Websocket – Semua Tentang Protokol
Dia’S a protokol IM era modern, memungkinkan data biner & teks’s To-and-fro Flow untuk server-klien di saluran persisten apa pun.
Dia’S dua arah, dupleks penuh, dan stateful. Dia’S terutama digunakan untuk aplikasi seluler yang membutuhkan koneksi berkelanjutan. Itu tidak ada hubungannya dengan mendefinisikan sifat dan jenis data-dalam-transit. Perlu dukungan protokol lain untuk sepenuhnya mengimplementasikan kemampuan IM di aplikasi obrolan.
Pro
Websocket dirancang untuk mengisi celah yang dibuat oleh teknologi berbasis http dalam transmisi data. Seiring waktu, diamati bahwa itu lebih dari ini. Lihatlah manfaat utama untuk dinikmati dengan websockets.
- Itu terus berkomunikasi kecuali server atau klien menghentikannya
- Hampir tidak ada kecocokan dengan Websocket ketika datang ke kecepatan. Itu dapat mengirimkan data lebih cepat dari AJAX dan HTTP
- Itu dapat memungkinkan transmisi data antara server asal
- Ini kompatibel dengan berbagai jenis platform seperti seluler, web, dan desktop
- Menggunakan websockets hemat biaya karena hanya memberikan biaya 2-byte
- Itu secara efektif memperbaiki masalah pemungutan suara yang panjang
Kontra
Terlepas dari manfaatnya, Websocket memiliki beberapa kelemahan potensial yang patut dicatat. Contohnya:
- Ini hanya berfungsi saat Anda memiliki browser yang sepenuhnya sesuai HTML 5
- Itu tidak memiliki mekanisme keberhasilan seperti ajax
- Tidak ada perantara atau tepi yang mungkin terjadi
- Saat Websocket sedang beraksi, pengembang akan mengalami kesulitan menerapkan bahkan status HTTP yang paling sederhana
Perbandingan protokol
Setelah memiliki pemahaman yang lebih dalam tentang makna dasar dari kedua protokol ini, itu’Saatnya beralih ke perbandingan Websocket XMPP V/S yang terperinci. Kami memilih beberapa aspek yang paling memprihatinkan dan kemudian membandingkan penawaran keduanya.
Penilaian keamanan singkat dari kedua protokol ini sangat penting karena menggunakan protokol tanpa jaminan akan membahayakan semuanya. XMPP adalah protokol yang dibumbui dengan waktu dan telah mengalami banyak perubahan dan peningkatan sepanjang tahun-tahun aktivasi ini. Saat persyaratan keamanan berubah, protokol meningkatkan bidang keamanannya. Muncul dengan berbagai lapisan dan fitur keamanan.
Saat XMPP diaktifkan, identitas pribadi adalah wajib. Pesan dan host harus diautentikasi sebelum menjadi bagian dari komunikasi untuk menghindari risiko spoofing. Meskipun itu cukup untuk menjaga ancaman spam tetap terkendali,
XMPP bahkan memungkinkan pengguna akhir untuk menambahkan lapisan keamanan sesuai kebutuhan jam ini.
Ketika datang ke enkripsi, XMPP menawarkan dua jenis. Enkripsi pertama muncul saat koneksi dibuat dan otentikasinya dimulai. Enkripsi ini selesai dengan SASL. Setelah koneksi berhasil dibangun, komunikasi klien-server kemudian didukung oleh enkripsi TLS.
Jika Websocket’Penawaran keamanan diperiksa dengan cermat, Anda akan dapat belajar bahwa itu membutuhkan sedikit peningkatan. Dia’S protokol yang sangat muda dan membutuhkan lebih banyak peningkatan dan peningkatan agar sesuai dengan apa yang ditawarkan XMPP. Tapi, itu tidak’T berarti tidak memiliki keamanan. Ini menawarkan enkripsi yang cukup kuat untuk menjaga gangguan berbahaya di teluk.
Arsitektur operasional inti XMPP didesentralisasi, sedangkan Websockets mengikuti arsitektur terpusat. XMPP didasarkan pada model klien-server dan mencegah interaksi langsung antara klien. Websockets mengambil bantuan API dan memastikan klien dan server berkomunikasi terus menerus.
- Kompatibilitas dengan protokol lain
XMPP adalah protokol primitif dan tidak memiliki kompatibilitas API. Di sisi lain, Websocket sangat dioptimalkan API, yang merupakan inti dari kompatibilitas yang lebih baik dengan protokol lain.
- Mengirim dan menerima data biner
Di Websockets, komunikasi melibatkan penggunaan kode dan pesan, mengatur pengguna bebas dari masalah penguraian dan masalah buffering. Ini membuat transfer data cepat. XMPP mengikuti jalur yang sangat tipis untuk transfer data biner, yang membuat semuanya rumit.
Websocket berurusan dengan lapisan transportasi’S Extensibility, sedangkan XMPP berkaitan dengan lapisan aplikasi’S Extensibility. Dia’s mungkin untuk menambahkan lebih dari 40 protokol di atas websockets. Tapi, xmpps isn’t itu fleksibel.
Meskipun keduanya berguna untuk mengirimkan data secara real-time dengan kecepatan Blazing, WebSocket mengungguli XMPP di bagian depan ini karena sifatnya yang terpusat dan komunikasi berkelanjutan. XMPP Force Authentication dan Otorisasi Server dan Klien sedikit memperlambat kinerjanya.
Contoh menggunakan XMPP dan Websocket
XMPP digunakan dalam aplikasi WhatsApp, GTalk, dan Grindr dan inbuilt dalam fitur obrolan. Untuk lebih spesifik, protokol sebagian besar lebih disukai di mana komunikasi satu-ke-satu atau berbasis kelompok adalah fitur utama dari aplikasi ini.
Trello, Slack, dan Discord adalah tiga aplikasi paling terkenal yang dibangun menggunakan websockets. Seperti yang kami ketahui, aplikasi ini adalah untuk tim dan pekerja jarak jauh. Untuk menyimpulkan, protokol lebih berguna untuk ruang kerja virtual terbatas karena menggunakan koneksi berkelanjutan.
Kesimpulan – Protokol mana yang akan digunakan?
Websocket dan XMPP – keduanya dirancang untuk pesan instan. Namun, mana yang harus Anda pilih adalah pertanyaan yang harus dijawab setelah mengambil persyaratan proyek ke dalam konteks. Sejauh pemahaman kami, kami sarankan menggunakan websockets ketika banyak data harus ditransfer, dan komunikasi harus tetap terbuka.
XMPP adalah pilihan terbaik untuk dibuat saat pengembangan membutuhkan banyak plugin dan keamanan harus menjadi yang terbaik. Jadi, sebelum Anda membuat pilihan di antara keduanya, Anda perlu mencari tahu apa sebenarnya tujuan pengembangan Anda. Kerjakan sebelumnya, lalu pilih protokol yang sesuai. Namun, satu hal yang pasti keduanya akan memberikan pada kinerja par jika digunakan dengan benar.
FAQ
Untuk apa XMPP digunakan?
XMPP (Pesan Perpesanan dan Protokol Kehadiran) digunakan untuk komunikasi real-time seperti pesan instan, obrolan suara dan video, dan informasi keberadaan.
Untuk apa Websocket bagus?
WebSocket bagus untuk aplikasi web real-time seperti game online, aplikasi obrolan, dan platform perdagangan keuangan.
Dapat XMPP digunakan dengan WebSocket?
Ya, XMPP dapat digunakan dengan WebSocket untuk meningkatkan aplikasi komunikasi real-time.
Apa keuntungan dari WebSocket dibandingkan xmpp?
WebSocket memiliki latensi yang lebih rendah, kinerja yang lebih baik, dan bisa lebih mudah diimplementasikan daripada XMPP.
Dapatkah Websocket digunakan untuk transfer file?
Menurut spesifikasi resmi, Websocket tidak dirancang untuk transfer file. Namun, beberapa pengembang telah menemukan cara untuk menggunakan WebSocket untuk transfer file. Repositori GitHub