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.

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

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.

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 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.