Udostępnij za pośrednictwem


Omówienie Socket.IO na platformie Azure

Socket.IO jest powszechnie popularną biblioteką typu open source do obsługi komunikatów w czasie rzeczywistym między klientami i serwerem. Zarządzanie stanowymi i trwałymi połączeniami między klientami a serwerem jest często źródłem frustracji Socket.IO użytkowników. Problem jest bardziej dotkliwy, gdy wiele wystąpień Socket.IO jest rozmieszczonych na serwerach.

Platforma Azure udostępnia w pełni zarządzane rozwiązanie w chmurze dla Socket.IO. Ta obsługa eliminuje obciążenie związane z wdrażaniem, hostowaniem i koordynowaniem wystąpień Socket.IO dla deweloperów. Zespoły programistyczne mogą następnie skupić się na tworzeniu środowisk w czasie rzeczywistym przy użyciu znanych interfejsów API z biblioteki Socket.IO.

Uproszczona architektura

Ta funkcja eliminuje potrzebę składnika serwera "adapter" podczas skalowania w poziomie aplikacji Socket.IO, co pozwala zespołowi programistycznemu czerpać korzyści z uproszczonej architektury.

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

Korzyści z hostowania aplikacji Socket.IO samodzielnie

W poniższej tabeli przedstawiono korzyści wynikające z korzystania z w pełni zarządzanego rozwiązania z platformy Azure.

Produkt Hostowanie aplikacji Socket.IO samodzielnie Korzystanie z Socket.IO na platformie Azure
Wdrożenie Zarządzane przez klienta Zarządzane przez platformę Azure
Hosting Klient musi aprowizować wystarczającą ilość zasobów serwera, aby obsługiwać i obsługiwać połączenia trwałe Zarządzane przez platformę Azure
Skalowanie połączeń Klient zarządzany przy użyciu składnika po stronie serwera o nazwie adaptera Platforma Azure zarządzana za pomocą ponad 100 000 połączeń klienckich z urządzenia
Gwarancja czasu pracy Zarządzane przez klienta Platforma Azure zarządzana z ponad 99,9% czasu pracy
Bezpieczeństwo klasy korporacyjnej Zarządzane przez klienta Zarządzane przez platformę Azure
System obsługi biletów Nie dotyczy Zarządzane przez platformę Azure

W przypadku samodzielnego hostowania aplikacji Socket.IO klienci ustanawiają połączenia WebSocket lub długotrwałe sondowanie bezpośrednio z serwerem. Utrzymywanie takich połączeń stanowych powoduje duże obciążenie serwera Socket.IO. To obciążenie ogranicza liczbę połączeń współbieżnych i zwiększa opóźnienie obsługi komunikatów.

Typowym podejściem do spełnienia wyzwania współbieżności i opóźnienia jest skalowanie w poziomie do wielu serwerów Socket.IO. Skalowanie w poziomie wymaga składnika po stronie serwera o nazwie adaptera, takiego jak karta Redis udostępniana przez bibliotekę Socket.IO. Jednak taka karta wprowadza dodatkowy składnik, który należy wdrożyć i zarządzać. Wymaga to również pisania dodatkowej logiki kodu, aby elementy działały prawidłowo.

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

Dzięki Socket.IO na platformie Azure możesz bezpłatnie obsługiwać problemy ze skalowaniem i implementować logikę kodu związaną z używaniem karty.

Ten sam model programowania

Aby przeprowadzić migrację własnej aplikacji Socket.IO na platformę Azure, należy dodać tylko kilka wierszy kodu. Nie trzeba zmieniać reszty kodu aplikacji. Innymi słowy, model programowania pozostaje taki sam, a złożoność zarządzania aplikacją w czasie rzeczywistym jest ograniczona.