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. O gerenciamento de conexões persistentes e com monitoração de estado 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.
Benefícios em relação à hospedagem de 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 Socket.IO no Azure |
---|---|---|
Implantação | Gerenciado pelo cliente | Gerenciada pelo Azure |
Hosting | O cliente precisa provisionar recursos de servidor suficientes para atender e manter conexões persistentes | Gerenciada pelo Azure |
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 tempo de atividade | Gerenciado pelo cliente | Azure gerenciado com mais de 99,9% de tempo de atividade |
Segurança de nível empresarial | Gerenciado pelo cliente | Gerenciada pelo Azure |
Sistema de suporte a tickets | Não aplicável | Gerenciada pelo Azure |
Quando você mesmo hospeda um aplicativo Socket.IO, os clientes estabelecem conexões WebSocket ou de sondagem longa diretamente com o servidor. Manter essas 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 do sistema de mensagens.
Uma abordagem comum para enfrentar o desafio de simultaneidade e latência é expandir para vários servidores Socket.IO. O dimensionamento horizontal requer um componente do lado do servidor chamado adaptador, como o adaptador Redis fornecido pela biblioteca Socket.IO. No entanto, esse adaptador introduz um componente extra que você precisa implantar e gerenciar. Ele também requer que você escreva lógica de código extra para que as coisas funcionem corretamente.
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 de Socket.IO autohospedado para o Azure, adicione apenas algumas linhas de código. Não há necessidade de alterar o restante 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.