Freigeben über


Übersicht Socket.IO in Azure

Socket.IO ist eine weit verbreitete Open-Source-Bibliothek für Echtzeitnachrichten zwischen Clients und einem Server. Das Verwalten zustandsbehafteter und persistenter Verbindungen zwischen Clients und einem Server ist häufig eine Ursache für Frustration für Socket.IO Benutzer. Das Problem ist akuter, wenn mehrere Socket.IO Instanzen auf Server verteilt sind.

Azure bietet eine vollständig verwaltete Cloudlösung für Socket.IO. Diese Unterstützung beseitigt die Bereitstellung, das Hosting und die Koordination von Socket.IO Instanzen für Entwickler. Entwicklungsteams können sich dann auf die Erstellung von Echtzeiterfahrungen konzentrieren, indem sie vertraute APIs aus der Socket.IO-Bibliothek verwenden.

Vereinfachte Architektur

Dieses Feature entfernt die Notwendigkeit einer "Adapter"-Serverkomponente beim Skalieren einer Socket.IO-App, sodass das Entwicklungsteam die Vorteile einer vereinfachten Architektur nutzen kann.

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

Vorteile beim Hosten einer Socket.IO-App selbst

Die folgende Tabelle zeigt die Vorteile der Verwendung der vollständig verwalteten Lösung aus Azure.

Artikel Hosten einer Socket.IO-App selbst Verwenden von Socket.IO in Azure
Bereitstellung Vom Kunden verwaltet Von Azure verwaltet
Hosting Der Kunde muss genügend Serverressourcen bereitstellen, um dauerhafte Verbindungen zu bedienen und zu Standard Von Azure verwaltet
Skalieren von Verbindungen Vom Kunden verwaltet mit einer serverseitigen Komponente, die als Adapter bezeichnet wird Azure wird mit mehr als 100.000 Clientverbindungen sofort verwaltet
Uptime-Garantie Vom Kunden verwaltet Azure verwaltet mit mehr als 99,9 Prozent Betriebszeit
Sicherheit auf Unternehmensniveau Vom Kunden verwaltet Von Azure verwaltet
Ticketunterstützungssystem Nicht zutreffend Von Azure verwaltet

Wenn Sie eine Socket.IO-App selbst hosten, richten Clients WebSocket- oder Long-Polling-Verbindungen direkt mit Ihrem Server ein. Die Aufrechterhaltung solcher zustandsbehafteter Verbindungen belastet Ihren Socket.IO Server erheblich. Diese Belastung begrenzt die Anzahl gleichzeitiger Verbindungen und erhöht die Messaginglatenz.

Ein gängiger Ansatz für die Besprechung der Parallelitäts- und Latenzabfrage besteht darin, auf mehrere Socket.IO-Server zu skalieren. Für das Skalieren ist eine serverseitige Komponente erforderlich, die als Adapter bezeichnet wird, z. B. den Redis-Adapter, den die Socket.IO-Bibliothek bereitstellt. Ein solcher Adapter führt jedoch eine zusätzliche Komponente ein, die Sie bereitstellen und verwalten müssen. Außerdem müssen Sie zusätzliche Codelogik schreiben, um die ordnungsgemäße Funktionsweise zu erzielen.

Diagram of a typical architecture of a self-hosted Socket.IO app.

Mit Socket.IO in Azure können Sie keine Skalierungsprobleme behandeln und Codelogik implementieren, die sich auf die Verwendung eines Adapters bezieht.

Gleiches Programmiermodell

Um eine selbst gehostete Socket.IO-App zu Azure zu migrieren, fügen Sie nur einige Codezeilen hinzu. Es ist nicht erforderlich, den Rest des Anwendungscodes zu ändern. Mit anderen Worten: Das Programmiermodell wird erneut Standard und die Komplexität der Verwaltung einer Echtzeit-App wird reduziert.