Partilhar via


Visão geral Socket.IO no Azure

Socket.IO é uma biblioteca de código aberto amplamente popular para mensagens em tempo real entre clientes e um servidor. Gerenciar conexões com estado e persistentes entre clientes e um servidor geralmente é uma fonte de frustração para Socket.IO usuários. O problema é mais grave quando várias instâncias Socket.IO estão espalhadas pelos servidores.

O Azure fornece uma solução de nuvem totalmente gerenciada para Socket.IO. Esse suporte elimina a carga de implantação, hospedagem e coordenação de instâncias Socket.IO para desenvolvedores. As equipes de desenvolvimento podem se concentrar na criação de experiências em tempo real usando APIs familiares da biblioteca Socket.IO.

Arquitetura simplificada

Esse recurso elimina a necessidade de um componente de servidor "adaptador" ao dimensionar um aplicativo Socket.IO, permitindo que a equipe de desenvolvimento colha os benefícios de uma arquitetura simplificada.

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

Benefícios sobre hospedar um aplicativo Socket.IO você mesmo

A tabela a seguir mostra os benefícios de usar a solução totalmente gerenciada do Azure.

Item Hospedando um aplicativo Socket.IO você mesmo Usando o Socket.IO no Azure
Implementação Gerenciado pelo cliente Azure gerenciado
Alojamento O cliente precisa provisionar recursos de servidor suficientes para atender e manter conexões persistentes Azure gerenciado
Dimensionamento de conexões Cliente gerenciado usando um componente do lado do servidor chamado adaptador Azure gerenciado com mais de 100.000 conexões de cliente prontas para uso
Garantia de Uptime Gerenciado pelo cliente Azure gerenciado com mais de 99,9% de tempo de atividade
Segurança de nível empresarial Gerenciado pelo cliente Azure gerenciado
Sistema de suporte de tickets Não aplicável Azure gerenciado

Quando você hospeda um aplicativo Socket.IO, os clientes estabelecem conexões WebSocket ou de sondagem longa diretamente com seu servidor. A manutenção dessas conexões com monitoração de estado coloca um fardo pesado em seu servidor Socket.IO. Essa carga limita o número de conexões simultâneas e aumenta a latência das mensagens.

Uma abordagem comum para enfrentar o desafio de simultaneidade e latência é expandir para vários servidores Socket.IO. O dimensionamento requer um componente do lado do servidor chamado adaptador, como o adaptador Redis que a biblioteca Socket.IO fornece. No entanto, esse adaptador introduz um componente extra que você precisa implantar e gerenciar. Também requer que você escreva lógica de código extra para que as coisas funcionem corretamente.

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

Com o Socket.IO no Azure, você fica livre de lidar com problemas de dimensionamento e implementar lógica de código relacionada ao uso de um adaptador.

Mesmo modelo de programação

Para migrar um aplicativo Socket.IO autohospedado para o Azure, adicione apenas algumas linhas de código. Não há necessidade de alterar o resto do código do aplicativo. Em outras palavras, o modelo de programação permanece o mesmo e a complexidade de gerenciar um aplicativo em tempo real é reduzida.