Megosztás a következőn keresztül:


Hogyan támogatja az Azure Web PubSub a Socket.IO könyvtárat?

Ez a cikk mérnöki szempontból ismerteti, hogyan migrálhat saját üzemeltetésű Socket.IO-alkalmazásokat az Azure-ba a Web PubSub használatával minimális kódmódosításokkal Socket.IO. Ezután kihasználhatja az egyszerűsített alkalmazásarchitektúra és -üzembe helyezés előnyeit, miközben 100 000 egyidejű kapcsolatot érhet el. Nem kell mindent megértenie ebben a cikkben ahhoz, hogy a Web PubSub hatékonyan használható legyen Socket.IO.

Saját üzemeltetésű Socket.IO-alkalmazások architektúrája

Az alábbi ábra egy saját üzemeltetésű Socket.IO alkalmazás tipikus architektúráját mutatja be.

Diagram of a typical architecture of a self-hosted Socket.IO app, including clients, servers, a load balancer, and an adapter.

Annak érdekében, hogy egy alkalmazás méretezhető és megbízható legyen, Socket.IO felhasználók gyakran olyan architektúrával rendelkeznek, amely több Socket.IO kiszolgálót is magában foglal. Az ügyfélkapcsolatok Socket.IO kiszolgálók között vannak elosztva, hogy kiegyensúlyozza a rendszer terhelését.

Több Socket.IO kiszolgáló beállítása kihívást jelent, ha a fejlesztőknek ugyanazt az üzenetet kell elküldenie egy másik kiszolgálóhoz csatlakozó ügyfeleknek. A fejlesztők ezt a használati esetet gyakran "üzenetközvetítésnek" nevezik.

A Socket.IO könyvtár hivatalos ajánlása, hogy egy adapter nevű kiszolgálóoldali összetevőt vezessen be Socket.IO kiszolgálók koordinálásához. Az adapter meghatározza, hogy mely kiszolgálókhoz csatlakoznak az ügyfelek, és utasítja őket az üzenetek küldésére.

Az adapterösszetevő hozzáadása összetettebbé teszi a fejlesztést és az üzembe helyezést. Ha például egy architektúra a Redis-adaptert használja, a fejlesztőknek a következőkre van szükségük:

  • Ragadós munkamenetek implementálása.
  • Redis-példányok üzembe helyezése és karbantartása.

A valós idejű kommunikációs csatorna létrehozása során végzett mérnöki munka és idő elvonja a fejlesztők figyelmét az olyan funkciókról, amelyek egyedivé és értékessé teszik az alkalmazást vagy a rendszert a felhasználók számára.

A Web PubSub for Socket.IO célja, hogy megoldást kínáljon a fejlesztők számára

Bár a fejlesztők gyakran arról számolnak be, hogy a Socket.IO könyvtárral létrehozott megbízható és méretezhető alkalmazás beállítása kihívást jelent, a fejlesztők kihasználhatják az intuitív API-kat és a tár által támogatott ügyfelek széles körét. A Web PubSub for Socket.IO a könyvtár által hozzáadott értékre épít, miközben a fejlesztőket az állandó kapcsolatok megbízható és nagy léptékű kezelése összetettségétől is mentesíti.

A gyakorlatban a fejlesztők továbbra is használhatják a Socket.IO könyvtár API-jait anélkül, hogy kiszolgálói erőforrásokat kellene kiépíteni a WebSocket vagy a hosszú lekérdezésen alapuló kapcsolatok fenntartásához, ami erőforrás-igényes lehet. Emellett a fejlesztőknek nem kell adapterösszetevőt kezelnie és üzembe helyeznie. Az alkalmazáskiszolgálónak csak egyetlen műveletet kell elküldenie, és a Web PubSub for Socket.IO az üzeneteket a megfelelő ügyfeleknek küldi el.

How it works

A Web PubSub for Socket.IO Socket.IO protokollokra épül az adapter és a Engine.IO implementálásával. Az alábbi ábra a Web PubSub Socket.IO Socket.IO-kiszolgálóval való használatakor használt tipikus architektúrát mutatja be.

Screenshot of a typical architecture of a fully managed Socket.IO app.

A saját üzemeltetésű Socket.IO-alkalmazásokhoz hasonlóan továbbra is a saját kiszolgálón kell üzemeltetnie a Socket.IO alkalmazáslogikát. A Web PubSub for Socket.IO szolgáltatással azonban:

  • A kiszolgáló már nem kezeli közvetlenül az ügyfélkapcsolatokat.
  • Az ügyfelek állandó kapcsolatokat létesítenek a szolgáltatással (ügyfélkapcsolatok).
  • A kiszolgálók állandó kapcsolatokat is létesítenek a szolgáltatással (kiszolgálókapcsolatok).

Amikor a kiszolgálólogika ezt a műveletet használja send to client, broadcastés add client to roomsezeket a műveleteket egy már létrehozott kiszolgálókapcsolaton keresztül küldi el a szolgáltatásnak. A kiszolgálóról érkező üzenetek Socket.IO Socket.IO ügyfelek számára érthető műveletekre lesznek lefordítva. Ennek eredményeképpen a meglévő Socket.IO implementációk jelentős módosítások nélkül működhetnek. Az egyetlen módosítás, amellyel módosítania kell azt a végpontot, amelyhez az ügyfelek csatlakoznak. További információ: Saját üzemeltetésű Socket.IO-alkalmazások migrálása az Azure-ban való teljes felügyelethez.

Amikor egy ügyfél csatlakozik a szolgáltatáshoz, a szolgáltatás:

  • Továbbítja a Engine.IO kapcsolatot (connect) a kiszolgálónak.
  • Kezeli az ügyfélkapcsolatok átviteli frissítését.
  • Az összes Socket.IO üzenetet továbbítja a kiszolgálónak.