souhrn

Šifrování WhatsApp End-to-End nemusí být tak chráněné soukromí, jak by se dalo doufat, navzdory jeho teoretickému zabezpečení. Tento článek zkoumá architekturu a návrh systému WhatsApp a vrhá světlo na jeho vnitřní fungování.

Klíčové body

1. Roxdavirox/Socket-WhathatsApp: Tento potvrzení nepatří do žádné pobočky v tomto úložišti a může být z vidličky mimo úložiště.

2. Jméno již používané: Vytvoření větve se jménem, ​​které již existuje jako značka, může vést k neočekávanému chování. Uživatel je vyzván k potvrzení vytvoření větve.

3. Spuštění plochy GitHub: Pokud se nic nestane, uživatel se doporučuje stáhnout GitHub Desktop a zkusit to znovu.

4. Spuštění Xcode: Pokud se nic nestane, uživatel se doporučuje stáhnout xcode a zkusit to znovu.

. Spuštění kódu vizuálního studia: Uživatel je informován, že jejich kódový prostor se otevře, jakmile bude připraven. Pokud došlo k problému přípravy Codespace, jsou povzbuzováni, aby to zkusili znovu.

6. Nejnovější potvrzení: Zobrazí se podrobnosti o nejnovějším potvrzením do úložiště.

7. Statistiky Git: Je poskytnut přehled statistik GIT pro úložiště.

8. Jsou uvedeny informace o souborech v úložišti, včetně neschopnosti načíst nejnovější informace.

9. Readme. .JS Implementace webového rozhraní Whatsapp Web API bez potřeby selenu nebo jakéhokoli jiného prohlížeče. Používá WebSocket přímo k rozhraní s WhatsApp Web.

10. Použití Baileys: Jsou uvedeny pokyny, jak nainstalovat Baileys z NPM a importovat do kódu.

Otázky a odpovědi:

1. Jaký je účel Roxdavirox/Socket-WhathatsApp?
Účel tohoto potvrzení je nejasný, protože nepatří do žádné pobočky v úložišti a může být z vidličky mimo úložiště.

2. Jaký potenciální problém může nastat při vytváření větve s názvem, který již existuje jako značka?
Vytvoření větve se jménem, ​​které již existuje jako značka, může způsobit neočekávané chování. Před vytvořením takové větev je vhodné potvrdit.

3. Co by se mělo udělat, pokud se při spuštění desktopu GitHub nestane nic?
Pokud se nic nestane při spuštění Desktop GitHub, doporučujeme jej stáhnout a zkusit to znovu.

4. Co by se mělo udělat, pokud se při spuštění xcode nic nestane?
Pokud se při spuštění Xcode nic nestane, stahování a opětovné pokus.

5. Jaké kroky by měly být podniknuty, pokud dojde k problému přípravy kódu při spuštění vizuálního kódu studia?
Pokud při spuštění kódu vizuálního studia dojde k problému, je nejlepší to zkusit znovu.

6. Jaké informace poskytuje sekce „nejnovější potvrzení“?
Sekce „Nejnovější potvrzení“ zobrazuje podrobnosti o nejnovějším potvrzením do úložiště.

7. Co ukazuje část „Git Statis“?
Sekce „Git Statis“ poskytuje přehled statistik GIT pro úložiště.

8. Jaké informace jsou uvedeny v části „Soubory“?
V části „Soubory“ zobrazuje informace o souborech v úložišti, včetně jakýchkoli selhání při načítání nejnovějších informací.

9. Co je Baileys?
Baileys je čistý uzel.Implementace JS Web API Whatsapp. Umožňuje přímou komunikaci s WhatsApp Web pomocí Websocket, bez potřeby prohlížeče, jako je Selenium.

10. ?
Baileys lze nainstalovat z NPM pomocí příkazu „NPM Instalace GitHub: Adiwajshing/Baileys.”Poté může být importován do kódu pomocí” const whatsAppweb = vyžadovat (‘baileys’).”

Osobní zkušenost a doporučení:

Podle mé osobní zkušenosti bylo porozumění architektuře a návrhu systému WhatsApp zásadní při vývoji aplikací, které se integrují s platformou. Baileys, být čistým uzlem.Implementace JS, usnadnila interakci s WhatsApp Web bez nutnosti nástrojů pro automatizaci prohlížeče, jako je Selenium. Vřele doporučuji využít takové knihovny pro každého, kdo chce vytvářet aplikace na vrcholu infrastruktury WhatsApp.

Porozumění architektuře a návrhu systému Whatsapp

Zatímco šifrování end-to-end se může teoreticky cítit bezpečně. V praxi je šifrování end-to-end ISN’je to chránění ochrany soukromí, jak by člověk doufal.

Roxdavirox/Socket-WhathatsApp

Tento potvrzení nepatří do žádné pobočky v tomto úložišti a může patřit k vidličce mimo úložiště.

Přepněte větve/značky

Značky větví

Nelze načíst větve

Nic, co by se ukázalo

Nelze načíst značky

Nic, co by se ukázalo

Jméno již používané

Značka již existuje s poskytnutým názvem větve. Mnoho příkazů Git přijímá názvy značek i větví, takže vytvoření této větve může způsobit neočekávané chování. Jste si jisti, že chcete vytvořit tuto větev?

Zrušit vytvořit

  • Místní
  • Kódové prostory

Https gitHub cli

Použijte GIT nebo pokladnu s SVN pomocí webové adresy URL.

Rychle pracovat s naším oficiálním CLI. Zjistěte více o CLI.

Požadované přihlášení

Přihlaste se prosím k používání kódů.

Spuštění stolního počítače GitHub

Pokud se nic nestane, stáhněte si GitHub Desktop a zkuste to znovu.

Spuštění stolního počítače GitHub

Pokud se nic nestane, stáhněte si GitHub Desktop a zkuste to znovu.

Spuštění Xcode

Pokud se nic nestane, stáhněte si Xcode a zkuste to znovu.

Spuštění kódu vizuálního studia

Váš kodespace se otevře, jakmile bude připraven.

Došlo k problému přípravy vašeho kodespace, zkuste to znovu.

Nejnovější spáchání

Statistiky git

Soubory

Nepodařilo se načíst nejnovější informace o potvrzení.

Nejnovější zpráva o potvrzení

Spáchat čas

Readme.MD

Reverse Engineered WhatsApp Web API v čistém uzlu.JS. Baileys nevyžaduje, aby selen nebo žádný jiný prohlížeč byl rozhraný s webem WhatsApp, činí tak přímo pomocí WebSocket.

Děkujeme společnosti Sigalor za psaní průvodce reverzní inženýrství WhatsApp Web a díky rýmu za jít Reimplementace.

Baileys je velmi snadno použitelný:

  • Nainstalujte z NPM pomocí NPM Instalace GitHub: Adiwajshing/Baileys
  • Poté importujte do svého kódu pomocí

const Whatsappweb = vyžadovat('Baileys') 

nechat klient =  Whatsappweb() klient.)

klient.Handlers.ONCONNITED = () =>  / * Pokud jste úspěšně ověřeni pomocí webových serverů WhatsApp */ > 

klient.Handlers.OnunReadMessage = (zpráva) =>  / * Volal, když máte čekající nepřečtenou zprávu nebo obdržíte novou zprávu */ > 

klient.Handlers.OnRorror = (chyba) =>  / * Volal, když došlo k chybě */ > 

klient.Handlers.přítomnost vzoru = (id, přítomnost) =>  / * Volal, když obdržíte aktualizaci na přítomnost někoho */ > 

klient.Handlers. = () =>  / * Volání, když se internet odpojí */ > 

klient.Handlers.OnunReadMessage = (m) =>  const MessageType = klient.getMessageType(m.zpráva) // Získejte jaký typ zprávy - text, obrázek, video >

klient.Handlers.OnunReadMessage = m) =>  const MessageType = klient.getMessageType(m.zpráva) // Získejte jaký typ zprávy - text, obrázek, video // Pokud zpráva není textovou zprávou -li (MessageType !== Whatsappweb.MessageType.text && MessageType !== Whatsappweb.MessageType.ExtendedText)  klient.decodemediaMessage(m.zpráva, "název souboru") // rozšíření aplikované automaticky .pak (meta => řídicí panel.log(m.klíč.Remotejid + "Odeslal média, zachráněno na:" + meta.název souboru)) .chytit (chybovat => řídicí panel.log("Chyba v dekódování zprávy:" + chybovat)) > >

klient.SendTextMessage(id, txtMessage) 

Nebo pokud chcete citovat další zprávu:

klient.SendTextMessage(id, txtMessage, Citovanámessage) 

klient.SendMediamessageid, Mediabuffer, typ média, informace)

  • .
  • MediaBuffer je jen vyrovnávací paměť obsahující obsah médií, které chcete odeslat
  • MediaType představuje typ zprávy, kterou odesíláte. To může být jedna z následujících:

[ Whatsappweb.MessageType.obraz, // Zpráva obrázku Whatsappweb.MessageType.video, // video zpráva Whatsappweb.MessageType.Zvuk, // Zvuková zpráva Whatsappweb.MessageType.nálepka // Zpráva nálepky ]

informace =  titulek: "Ahoj!", // Titulek k odeslání s médii (nelze však odeslat s nálepkami) : nula, , nebo nastavte na null, pokud nechcete poslat miniaturu. Pokud chcete automaticky vygenerovat palec  mimetype: "Aplikace/pdf", /* Zadejte typ média (volitelné pro všechny typy médií kromě dokumentů), Pro soubory PDF => Nastavit na "Application/PDF", pro txt soubory => nastavit na "Application/txt" atd. */ gif: skutečný // použitelné pouze pro video zprávy, pokud by se video mělo považovat za GIF >

klient.SendreadReceipt(id, MessageId) 

klient.UpdatePresence(id, přítomnost) 

To umožňuje osobě s ID znát váš stav. kde přítomnost může být jedním z následujících:

statický Přítomnost   dostupný: "dostupný", // "online" nedostupné „Nedostupné“, // offline složení: „Skládání“, // "psaní na stroji. " záznam: "záznam", // "nahrávání. " Odmlčené: "Zamlčené" // Nemám tušení >

const authjson = klient.Base64encodedauthinfo() 

const authjson = JSON.analyzovat( fs.ReadFileSync("Auth_info.JSON ") ) klient.přihlásit se(authjson)

klient.ISONWHATSAPP (.whatsapp.síť") .pak ((existuje, id =>  -li (existuje)  řídicí panel.log(id + "je na WhatsApp") > jiný  řídicí panel.log(id + "Není na WhatsApp :(") > >)

Zkontrolujte příklad a spusťte příklad.. Chcete -li spustit příklad skriptu, stáhněte si nebo kloné repo a poté do terminálu zadejte následující:

  1. CD cesta/do/baileys/příklad
  2. Příklad uzlu.

V žádném případě nejsem spojen s WhatsApp. Toto bylo napsáno pro vzdělávací účely. Použijte podle vlastního uvážení.

Porozumění architektuře a systému systému Whatsapp

Přemýšleli jste někdy o tom, jak funguje WhatsApp? My’Ve studoval návrh systému a architekturu systému WhatsApp na vysoké úrovni’. Ponořit se a podívat se, co jsme se naučili.

Značka typu obsahu

Obsah

Která aplikace má více než 2.5 miliard aktivních uživatelů, více než 5 miliard stahování a je nejoblíbenější aplikací ve více než 100 zemích?

Tip: Zkontrolujte název článku.

Ano tamto’je správně. Whatsapp je nejoblíbenější službou zasílání zpráv na světě. Podle Marka Zuckerberga je každý den odesíláno přes 100 miliard zpráv.

S takovým téměř astronomickým provozem’T nápověda, ale divíte se, jak funguje WhatsApp – návrh systému, architektura serveru, technologie . Jak to zvládne tolik souběžných uživatelů a zpráv? Jaký druh rámců a programovacích jazyků umožňují tento druh měřítka? Jak udržují všechna tato data zabezpečená? Tolik otázek!

V tomto článku se chystáme hluboce ponořit do Whatsapp’S architektura a návrh systému. My’ll odpovědět na všechny výše uvedené otázky a další.
jestli ty’VE přemýšlel o nejlepším psovi ve světě chatovací aplikace, pokračujte ve čtení.

Zřeknutí se odpovědnosti: Prohledali jsme internet, abychom shromáždili každý zdroj na designu architektury WhatsApp a sestavili jsme a shrnuli jej zde. . Protože však společnosti často aktualizují svůj technický zásobník, tyto informace se mohou změnit.

WhatsApp Front-End Tech Stack

Nechat’s začněte s frontendem a pracujte na hardwaru na backendu.

První část návrhu systému WhatsApp, se kterým uživatel komunikuje, je mobilní nebo webová aplikace. . Má aplikaci pro iOS, aplikaci pro Android, aplikaci pro stolní počítače, webovou aplikaci a aplikaci Windows Phone. Až do roku 2017 můžete dokonce použít WhatsApp na ostružině.

S tolika podporovanými platformami jste možná uhodli, že WhatsApp bude hybridní aplikací. Ale ve skutečnosti to’S ne. . Zde je seznam všech podporovaných platforem s jazykem front-end, které byly použity k vytvoření každého z nich:

Jak WhatsApp ukládá chatování lokálně

Kromě samotného programovacího jazyka je další důležitá technologie, kterou WhatsApp používá na frontendu, databáze SQLite. SQLite je samostatná, samostatná relační databáze, která má být zabudována do aplikací-což znamená, že žije na vašem zařízení. WhatsApp jej používá k ukládání konverzací. Protože by to bylo plýtvání zdroji ke stažení všech zpráv z cloudu pokaždé, když otevřete aplikaci, WhatsApp se rozhodne ukládat zprávy lokálně. WhatsApp ve skutečnosti ukládá zprávy, dokud nebudou přijaty, kdy jsou odstraněny.

Které protokoly zasílání zpráv používají WhatsApp?

WhatsApp používá vysoce upravenou verzi XMPP na serveru Ejabberd (více o tom později) pro komunikaci s klienty.

XMPP na klientovi otevře zásuvku SSL na servery WhatsApp. Všechny odeslané zprávy jsou na serverech ve frontě, dokud se klient neotevře nebo znovu se nepřipojí k této zásuvce a načte zprávy. Jakmile je klient úspěšně načten, je stav úspěchu odeslán zpět na server WhatsApp. Server poté tento stav předá původnímu odesílateli; dát jim vědět, že zpráva byla přijata přidáním “zaškrtnutí” Ikona vedle úspěšně odeslané zprávy.

Mějte na paměti, že zatímco XMPP je jedním z nejpopulárnějších protokolů zasílání zpráv pro chatovací aplikace, rozhodně to není jediná možnost pro výběr protokolu zasílání zpráv.

Technologie šifrování Whatsapp

WhatsApp používá šifrování end-to-end. V ideálním případě to znamená, že pouze původní odesílatel a skutečný příjemce zprávy si mohou přečíst zprávu v prostém textu.

Když odešlete zprávu, dostane se zašifrováno pomocí konkrétního šifrovacího protokolu (více na tomto dalším). WhatsApp poté tuto šifrovanou zprávu uloží na svých serverech’s doručenému příjemci. Po doručení zařízení příjemce dešifruje zprávu zpět do čitelné, prostého textu pomocí jedinečného kryptografického klíče. V celém tomto procesu WhatsApp nikdy neví obsah vaší zprávy.

Whatsapp’Šifrovací technologie S se nazývá protokol pro šifrování signálu, který vyvinul Open System Whispers jako moderní, open-source a silný šifrovací protokol pro systémy asynchronního zasílání zpráv.

Zatímco šifrování end-to-end se může teoreticky cítit bezpečně. V praxi je šifrování end-to-end ISN’je to chránění ochrany soukromí, jak by člověk doufal.

WhatsApp Back-End Tech Stack

Nechat’s přesuňte na backend.

Podle našich nejlepších znalostí vypadá současný návrh systému back-end WhatsApp takto:

  • Erlang je hlavní programovací jazyk
  • FreeBSD
  • Ejabberd je aplikační server XMPP
  • je virtuální stroj založený na Erlangu
  • Mnesia je jejich databáze založená na Erlangu
  • Yaws je jejich multimediální webový server

Nechat’S prozkoumejte některé z nejzajímavějších aspektů WhatsApp’S architektura back-end:

Erlang

Výběr programovacího jazyka WhatsApp je z velké části to, co mu umožňuje pracovat na takovém kolosálním měřítku.

Erlang je funkční programovací jazyk, který je orientován na budování souběžných, škálovatelných a spolehlivých systémů. Používá proces založený na procesu s názvem “herecký model” ve kterých malé izolované procesy spolu komunikují prostřednictvím zpráv. Tyto procesy mohou vytvářet nové procesy, odesílat zprávy a upravit svůj stav v reakci na přijímání zpráv.

Jeho vlastnost založená na procesu dává Erlangu extrémně vysokou souběžnost, škálovatelnost a spolehlivost.

Tyto procesy mohou také komunikovat s procesy mimo jádro, na kterém běží. Díky tomu je snadné měřítko systému vodorovně (přidáním dalších strojů) nebo svisle (přidáním dalších jader). A konečně, protože procesy mohou spolu komunikovat a co je důležitější, se navzájem restartovat’S snadno sestaví samoléčivé systémy. Pokud chyba zhroutí proces, může jej restartovat jiný proces.

FreeBSD

Zajímavou technickou volbou zakladatelů WhatsApp bylo vybírat FreeBSD jako operační systém místo široce používaného systému (jako je Linux).

Brian Acton, jeden z spoluzakladatelů WhatsApp, to řekl v rozhovoru s Wiredem o rozhodnutí:

“Linux je zvíře složitosti. FreeBSD má tu výhodu, že je jedinou distribucí s mimořádně dobrými kolekcemi portů.”

Také pokud jde o výkol surového výkonu, zejména pokud jde o zatížení systému na paket, žádný jiný operační systém nemůže porazit FreeBSD.

Pokud však na to přijde, skutečným důvodem, proč se rozhodli použít FreeBSD, je pravděpodobně proto, že oba spoluzakladatelé měli dlouhou historii práce s ním na Yahoo!.

Ejabberd

. WhatsApp používá jako protokol pro doručování zpráv upravenou verzi XMPP. Dokonce i server Ejabberd, který používá WhatsApp, je silně přizpůsoben pro optimalizaci výkonu serveru.

’s účelem ejabberd?

Zvládne to směrování zpráv, doručitelnosti a obecné aspekty zasílání zpráv v aplikaci. Mezi funkce Ejabberd patří:

  • Zprávy o individuálním na jednoho
  • Skupinový chat
  • Ukládání a předávání zpráv offline
  • Seznam kontaktů a přítomnost

Mnesia

K ukládání dat a dočasných zpráv používá WhatsApp distribuovaný distribuovaný DBMS (systém správy databáze) zvaný Mnesia. Tato DBMS poskytuje výhody, které mnoho tradičních databází don’t jako:

  • Vyhledání klíče/hodnoty v reálném čase
  • Vysoká tolerance poruch
  • Dynamická rekonfigurace
  • Složité objekty

Mnesia je také jediná DBMS, která’s napsáno v Erlangu. To samo o sobě je výhodou, protože neexistují žádné rozdíly v datové struktuře mezi Erlangem v aplikaci a Erlang v DBMS. Kódování je proto rychlejší a explicitnější.

PAPRSEK

Paprsek, zkrat “Bogdan’erlang abstraktní stroj”, je virtuální stroj, který kompiluje a provádí zdrojový kód Erlang. Paprsek je navržen speciálně pro vysoce souběžné aplikace – ideální pro WhatsApp’Případ použití. PAPRSEK’s tajnou omáčkou je procesy lehké hmotnosti, které Don’t Sdílejte paměť a jsou spravovány plánovači. Tito plánovatelé mohou spravovat miliony procesů ve více jádrech. Díky tomu je paprsek vysoce škálovatelný a odolný vůči selháním, jako jsou například ty, které jsou způsobeny vysokým zatížením provozu, aktualizace systému a výpadky sítě.

Beam je pro design systému Whatsapp tak zásadní, že tým WhatsApp publikoval mnoho záplat a opravy základního zdrojového kódu.

JAWS

Yaws (další webový server) je webový server založený na Erlangu, který je ideální pro dynamický obsah. WhatsApp používá k ukládání multimediálních dat jaws. Samotné Yaws používá websockety HTML5, které zjednodušují obousměrnou komunikaci vytvořením spolehlivého a rychlého spojení mezi serverem a aplikací. Prostřednictvím použití této technologie je WhatsApp schopen odesílat a přijímat multimediální data napříč miliardami zařízení – téměř v reálném čase.

Hardwarové komponenty Whatsapp

V roce 2017, čtyři roky po získání Facebookem, byl WhatsApp odebrán z IBM Softlayer’c cloud a přiveden na Facebook’S vlastnických datových center.

Víme, že v roce 2014 WhatsApp vyžadoval kolem 550 serverů a více než 11 000 jádra, která běžela Erlang. Víme také, že WhatsApp’Uživatelská základna byla v roce 2014 „pouze“ asi půl miliardy ve srovnání s více než 2 miliardami uživatelů, které v roce 2020 dosáhl. S ohledem na tato data vám tedy dovolíme představit si, kolik serverů a jádra WhatsApp nyní vyžaduje. Představujeme si, že je to hodně.

Schéma architektury WhatsApp

Schéma architektury WhatsApp

Nejjednodušší způsob, jak získat plné porozumění WhatsApp’Návrh architektury S je samozřejmě prostřednictvím diagramu architektury WhatsApp.

Počínaje levou stranou máme několik různých klientů (mobilních a webových aplikací), z nichž každá je hostitelem místní databáze SQLite pro ukládání konverzací.

Klienti používají HTTP WebSockets k odesílání a načítání multimediálních dat, jako jsou obrázky a videa z webového serveru Yaws. Jak však vidíte, XMPP se používá ke skutečnému odesílání těchto souborů a dalších zpráv jiným uživatelům.

Když je odeslána zpráva XMPP, prochází sérií výše uvedených kroků. Nejprve je odeslán do WhatsApp’S vlastní server Ejabberd, který běží na paprsku a freebsd. Server Ejabberd uloží zprávu v tabulce databáze Mnesia, kde se dostane do fronty. Když přijímací uživatel otevře aplikaci, a tím se znovu připojí k zásuvce, zpráva ve frontě se směruje přes server Ejabberd a doručí příjemci. Jakmile bude možné potvrdit úspěšné doručení, zpráva se z databáze Mnesia odstraní.

Závěr

Zatímco jsme’T znát přesné specifikace WhatsApp’S technická architektura a návrh systému, můžeme získat dobrý nápad na základě technologií, které WhatsApp zaměstnává. Doufáme, že tento článek, prozkoumáním designu architektury WhatsApp, odpověděl na vaše pálivé otázky. Nyní, když jste získali pochopení toho, jak funguje server WhatsApp, zjistili, jak vypadá WhatsApp Tech Stack, a dokonce naskenoval diagram architektury WhatsApp. Možná se cítíte zmocněni k tomu, abyste si převzali vlastní projekt aplikace.

jestli ty’Jste připraveni dát WhatsApp běh za své peníze, zaregistrujte se do našeho vývojářského palubního panelu a začněte vytvářet chatovací aplikaci zdarma.

Mějte však na paměti, že mnoho technologií v technologickém zásobníku Whatsapp bylo speciálně vybráno pro svou schopnost škálovat a zvládnout extrémně vysokou souběžnost.

jestli ty’Snaží se vytvořit datovací aplikaci nebo telemedicínu (nebo cokoli, co ne’potřebuji téměř celý svět, aby byl online současně), možná nebudete potřebovat množství měřítka, které WhatsApp dělá.

Jinými slovy, zásobník WhatsApp Tech, i když je ideální pro WhatsApp, nemusí být pro vás nejlepším řešením. Chcete -li se dozvědět o ideální architektuře a technologickém zásobníku pro chatovací aplikaci, přejděte na tento článek.

Pokud máte stále dotazy ohledně toho, co je pro vás to pravé, neváhejte si promluvit s našimi odborníky a než začnete vytvářet vlastní chatovací aplikaci.

Jen hlad po více? Zde je několik dalších skvělých zdrojů, do kterých se můžete ponořit:

  • Mýtus o šifrování end-to-end v aplikacích pro zasílání zpráv
  • Porozumění architektuře a návrhu systému chat aplikace
  • 11 Developers 11 hloupých chyb při vytváření chatovací aplikace

o autorovi

Cosette Cressler je vášnivý obchodník s obsahem specializujícím. Pomáhá pěstovat podniky všech velikostí vytvořením konzistentního a stravitelného obsahu, který upouští pozornost a řídí akci.

Používá WhatsApp soket

Об эой странице

Мы зарегистрировали подvoje. С помощю этой страницы мы сможем определить, что запросы отправля и а не робот робот. Почему это могло произойй?

. Страница перестанет отображаться gle того, как эти запросы прекрататсся. До этого момента для исползованиdělá.

Источником запросов может служить вредоносное по, подключаемые мо část и и и и и и и и и и и и и и с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с с. ыылку запросов. Если ы исполззуете общий доступ в интернет, проблема может ыыть с к к к как ж к как ж к каbit ж к как živa. Обратитесь к с с системному администратvo. Подробнее.

Проверка по слову может емами, или же водите запросы очень часто.

?

XMPP vs WebSocket - které použít pro aplikace?

Při vytváření responzivní a vysoce funkce s rychlým zasílání (IM) od nuly je vaším cílem, nejvíce se týká: vymýšlení optimálního protokolu pro zasílání zpráv. .

Abychom to jasně řekli, pokusili jsme se přinést značné znalosti o protokolu XMPP vs WebSocket prostřednictvím tohoto příspěvku. . To však’S není snadné vybrat jako jeden snadný, má zřetelné výhody a omezení.

Přihlaste se k odběru nejnovějších zpráv

Mukhaddin Beshkov

Ověřený odborník

20 a více let IT Expelní znalosti v oblasti systémového inženýrství, analýzy bezpečnosti, architektura řešení. Zkušený OS (Windows, Linux, Unix), programování (C ++, Python, HTML/CSS/JS, Bash), DB (MySQL, Oracle, MongoDB, PostgreSQL). Kvalifikovaný ve skriptování (PowerShell, Python), DevOps (Microservices, Containers, CI/CD), vývoj webových stránek (uzel.JS, React, Angular). Úspěšný záznam při správě IT systémů.

Definice

XMPP – vše o protokolu

XMPP je použity pro výměnu fragmentu XML b/w. Má dlouhou historii více než 20 let. Jeho efektivní implementace vyžaduje povinné použití vhodné přepravní vazby.

V modelu OSI funguje XMPP hlavně na aplikační vrstvě, která vypracovává strukturální vzor XML (jeho částí nebo syntaxe). ’ protokoly’ (HTTP nebo TCP) nápověda.

Xnapjatý Meseging & Strpojem StrRotocol se většinou používá ve vývoji, které zahrnují chatovací aplikace, aplikace s zařízeními, jako je hlasový/videohovorech, okamžité odesílání textu/bohatých médií a vícedílné videohovory.

Přímá komunikace klienta-klienta

Klady

S XMPP máte několik výhod, které si můžete vychutnat, když vyvíjíte aplikaci IM. Například:

  • Jeho rysy kybernetické bezpečnosti jsou dostatečně pokročilé, aby udržely vedení digitálních světových nebezpečí na uzdě.
  • Decentralizovaná architektura zajišťuje, že je přístupná všem.
  • Nabízená technická podpora je spolehlivá a efektivní.
  • Je flexibilní a umožňuje koncovým uživatelům provést změny v procesu přenosu dat podle potřeby projektu.
  • Pomáhá při vytváření přetrvávajícího (nepřetržitého) spojení.
  • Zjednodušuje komunikační servery B/W tím, že umožňuje různorodým architekturám přenášet data.
  • Okamžitě reaguje na přítomnost koncového uživatele. Proto ty’mohu zjistit, zda je koncový uživatel online nebo offline.

Nevýhody

. Existují určité zjevné nevýhody nebo nevýhody tohoto protokolu.

  • Postrádá mechanismus QoS
  • Textové streamování nebo komunikace XML zvyšuje provozní režijní náklady
  • Přeprava obsahu často dochází bez jakékoli synchronizace
  • Přítomnost a/nebo okamžité zprávy mohou občas způsobit přetížení serveru

WebSocket – vše o protokolu

To’s A protokolem moderní éry IM, umožňující binární a textová data’tok toku do a-fro pro klienta serveru v jakémkoli přetrvávajícím kanálu.

To’s obousměrnými, plně duplexními a stavovými povahami. To’s používaný hlavně pro mobilní aplikaci, která potřebuje probíhající připojení. Nemá to nic společného s definováním povahy a typu přenos dat. Potřebuje podporu jiných protokolů k plnému implementaci schopnosti IM v chatovací aplikaci.

WebSocket je navržen tak, aby vyplňoval mezeru, kterou technologie založená na HTTP vytvořená v přenosu dat. V průběhu času bylo pozorováno, že to bylo víc než tohle. .

  • Udržuje komunikaci, pokud jej server nebo klient nezastaví
  • Pokud jde o rychlost. Může přenášet data rychleji než AJAX a HTTP
  • Může umožnit přenos dat mezi počátečními servery
  • Je kompatibilní s několika druhy platforem, jako je mobilní, web a stolní počítače
  • Používání WebSockets je nákladově efektivní, protože vyvíjí pouze 2-bajtové výdaje
  • Efektivně vyřeší problém s dlouhým hlasováním

Nevýhody

.

  • Funguje to pouze tehdy, když máte plně prohlížeč kompatibilní s HTML 5
  • Postrádá mechanismus úspěchu jako Ajax
  • Žádný zprostředkovatel nebo hrana není možné ukládat do mezipaměti
  • Když je WebSocket v akci, vývojáři budou mít těžký čas implementovat i ty nejjednodušší stavy HTTP

Porovnání protokolů

Po hlubším pochopení základního významu těchto dvou protokolů to’je čas přejít na podrobné srovnání XMPP V/S WebSocket. Ručně jsme vybrali několik nejvíce ohledně aspektů a poté jsme porovnali nabídky těchto dvou.

Krátké posouzení zabezpečení těchto dvou protokolů je zásadní, protože použití nezajištěného protokolu ohrožuje vše ohroženo. XMPP je protokol zařazený do časově a během těchto aktivačních let prošel více změnami a vylepšeními. Jak se bezpečnostní požadavky mění, protokol zlepšuje svou frontu zabezpečení. Dodává se s různými bezpečnostními vrstvami a funkcemi.

. Zprávy i hostitelé musí být ověřeni, než se stanou součástí komunikace, aby se zabránilo riziku spoofingu. ,

XMPP dokonce umožňuje koncovým uživatelům přidat bezpečnostní vrstvy podle potřeby hodiny.

. První šifrování vzniká, když se připojení naváže a jeho ověřování začíná. Toto šifrování dokončí s SASL. Jakmile je připojení úspěšně vytvořeno, komunikace s klientkou je pak podpořena šifrováním TLS.

Pokud WebSocket’nabídka zabezpečení je pečlivě zkoumána, budete se moci dozvědět, že potřebuje trochu vylepšení. To’s velmi mladým protokolem a vyžaduje větší zlepšení a upgrady, aby odpovídalo tomu, co nabízí XMPP. Ale to ne’T znamená, že postrádá bezpečnost. Nabízí šifrování dostatečně silné, aby udržel jakékoli škodlivé vniknutí do zálivu.

. XMPP je založeno na modelu klienta-serveru a zabraňuje přímé interakci mezi klienty. Websockets využívají pomoc API a zajišťují, aby klient a server nepřetržitě komunikovali.

  1. Kompatibilita s jinými protokoly

. Na druhé straně je WebSocket vysoce optimalizován API, což je jádro lepší kompatibility s jinými protokoly.

  1. Odesílání a přijímání binárních údajů

Ve Websocketech zahrnuje komunikace používání kódů a zpráv, uvolnění uživatelů bez problémů s analýzou a vyrovnávací pamětí. To dělá rychlý přenos dat. XMPP sleduje velmi tenkou cestu pro přenos binárních dat, což dělá všechno těžkopádné.

WebSocket se zabývá přepravní vrstvou’S rozšiřitelností, zatímco XMPP se zabývá aplikační vrstvou’Rozšiřitelnost. ’. Ale XMPP ISN’t to flexibilní.

Přestože jsou obě užitečné pro přenos dat v reálném čase při rychlosti hořící, WebSocket překonává XMPP na této frontě kvůli své centralizované povaze a nepřetržité komunikaci. Ověřování a autorizace XMPP Force a autorizace serveru i klienta trochu svůj výkon zpomalí.

Porovnání protokolů

Příklady používání XMPP a WebSocket

XMPP se používá v aplikacích WhatsApp, GTalk a Grindru a vestavěný ve funkcích chatu. Konkrétně, protokol je většinou preferován tam, kde je hlavní rysem aplikace zabezpečená nebo skupinová komunikace.

Trello, Slack a Discord jsou tři nejslavnější aplikace postavené pomocí WebSockets. . Na závěr je protokol užitečnější pro uzavřené virtuální pracovní prostory, protože používá nepřetržité připojení.

Závěr – jaký protokol k použití?

WebSocket a XMPP – oba jsou navrženy pro rychlé zasílání zpráv. Který z nich byste si však měli vybrat, je otázka, na kterou by měla být zodpovězena po převzetí požadavků na projekt do kontextu. Pokud jde o naše porozumění, doporučujeme používat websockety, když je třeba přenést mnoho dat a komunikace by měla zůstat otevřená.

XMPP je nejlepší volbou, když vývoj vyžaduje tuny pluginů a zabezpečení musí být špičkové. Než si tedy vyberete mezi těmito dvěma, musíte zjistit, jaké jsou vaše vývojové cíle. . Jedna věc je však jistá, že oba dodají PAR výkonnost, pokud budou použita správně.

FAQ

Na co se používá XMPP?

Pro komunikaci v reálném čase se používá XMPP (protokol rozšiřitelných zpráv a přítomnosti), jako jsou rychlé zasílání zpráv, hlasový a videochat a informace o přítomnosti.

K čemu je WebSocket dobré?

WebSocket je dobrý pro webové aplikace v reálném čase, jako jsou online hraní her, chatovací aplikace a platformy pro finanční obchodování.

Lze XMPP použít s WebSocket?

Ano, XMPP lze použít s WebSocket pro zlepšení komunikačních aplikací v reálném čase.

Jaké jsou výhody WebSocket oproti XMPP?

WebSocket má nižší latenci, lepší výkon a může být snazší implementovat než XMPP.

Pro přenos souborů lze použít WebSocket?

Podle oficiální specifikace není WebSocket navržen pro přenos souborů. Někteří vývojáři však našli způsoby, jak použít Websocket pro přenos souborů. Úložiště GitHub