Desenvolvedor

Como tornar fácil a comunicação em tempo real: um guia para webhooks e WebSockets

Como é possível usar os webhooks e WebSockets para desenvolver aplicativos e integrações que usam as soluções de comunicação baseadas em vídeo do Zoom.
4 minutos de leitura

Atualizada em January 26, 2023

Publicado em January 25, 2023

WebSockets and webhooks

O que são webhooks e WebSockets?

Webhooks e WebSockets são componentes fundamentais em aplicativos modernos, já que eles oferecem serviços de notificação de evento importantes. Tanto os webhooks quanto os WebSockets permitem que você receba notificações em tempo real sobre eventos, na sua conta Zoom. Eles também suportam aplicativos que precisam responder a alterações ou atualizações, assim que elas acontecem. No entanto, há algumas diferenças importantes entre webhooks e WebSockets que você deve levar em conta ao decidir qual deles melhor se adequa ao seu caso de uso, em termos de facilidade de implementação, rapidez de entrega, confiabilidade, arquitetura e outros fatores.

Compare webhooks e WebSockets

Protocolos e facilidade de implementação

Webhooks usam o protocolo HTTP, enquanto WebSockets usam o protocolo WebSocket (ws ou wss). Em razão disto, os webhooks, normalmente, são mais fáceis de implementar, já que exigem apenas um URL de ponto de extremidade para receber solicitações HTTP POST. Os WebSockets exigem uma configuração mais complexa, incluindo obter um token de acesso, além de abrir uma conexão com o servidor.

Velocidade de entrega

Normalmente, os WebSockets são mais rápidos em termos de entrega do que os webhooks, porque eles oferecem um canal de comunicação duplo. Os WebSockets permitem que uma conexão única seja estabelecida entre o cliente e o servidor, ativando a troca de dados em tempo real, sem a necessidade de outras solicitações HTTP. Comparado com webhooks, uma conexão persistente pode resultar em uma entrega mais rápida de notificações de evento e uma utilização mais eficiente dos recursos.

Confiabilidade

Ao avaliar as opções para comunicação baseada em evento, a confiabilidade é fundamental. Os Webhooks enviam a notificação para um URL específico quando um evento acontece. No entanto, se o ponto de extremidade estiver vivenciando algum problema, a notificação do evento pode não ser processada corretamente. De forma alternativa, os WebSockets mantêm uma conexão persistente com o servidor, permitindo uma comunicação mais consistente e confiável.

Arquitetura

Os Webhooks são baseados em um modelo "push", onde o Zoom faz o push de notificações de evento para prontos de extremidade, assim que eles ocorrem. Já os WebSockets são baseados em modelo "pull", no qual o cliente estabelece uma conexão com o servidor e, em seguida, recebe notificações do evento, assim que ele ocorre.

Sem estado X Com estado

Os webhooks são sem estado, o que significa que cada notificação de evento é independente e carrega todas as informações necessárias sobre o evento. Os WebSockets são com estado, o que significa que o cliente e o servidor mantêm uma conexão persistente e podem compartilhar informações de estado por todo o tempo de duração da conexão.

Casos de uso

Os Webhooks podem ser uma solução melhor quando um aplicativo precisa apenas de receber uma pequena quantidade de notificações de evento. Digamos que você tenha um aplicativo de marketplace que precisa receber uma notificação quando um usuário cria, atualiza ou exclui uma reunião. Neste caso, os webhooks funcionam bem porque o aplicativo precisa receber apenas uma pequena quantidade de notificações de evento (por exemplo, uma notificação de eventos relacionada a uma reunião). Configurar um ponto de extremidade simples para receber estas notificações pelos webhooks é mais eficiente do que implementar WebSockets.

Os WebSockets podem ser uma boa opção para quem está desenvolvendo aplicativos em setores como o bancário, financeiro e de saúde. Ao implementar webhooks, um desenvolvedor precisa de esforços extras para proteger o ponto de extremidade, como validar a solicitação, além de listar os IPs permitidos. Por outro lado, os WebSockets vêm com uma camada de segurança adicional, já que a conexão é estabelecida diretamente entre o cliente e o servidor, o que reduz o risco de ataques man-in-the-middle. Os WebSockets oferecem uma conexão mais confiável, já que os dados são transferidos apenas quando a conexão está aberta e ela permanece aberta até que seja fechada pelo desenvolvedor. Mais um fato interessante sobre os WebSockets do Zoom é que a conexão só pode ser aberta pelo token de acesso gerado pelo aplicativo que criou a assinatura WebSocket e apenas uma conexão pode ficar aberta por vez. Uma das principais vantagens dos WebSockets, em relação aos webhooks, é que eles permitem comunicação em tempo real e com baixa latência, o que é essencial para casos de uso nos quais atualizações em tempo real são fundamentais.

Ferramentas essenciais para experiências envolventes

Os WebSockets e webhooks são ferramentas essenciais para desenvolver aplicativos interativos na web, porque oferecem atualizações simplificadas e eficientes, baixa latência, bom custo-benefício e dimensionamento. No Zoom, usamos estas tecnologias para criar experiências de usuários envolventes e intuitivas. Independentemente de você estar desenvolvendo um aplicativo de engajamento do cliente ou um sistema de monitoramento, estes notificadores de evento são vitais para desbloquear todas as possibilidades do seu aplicativo.

Para ajudá-lo a começar, criamos uma documentação tanto para os webhooks quanto para os WebSockets (beta). Inscreva-se para usar os WebSockets Beta, preenchendo este formulário para ter acesso prioritário a este novo recurso.

Nossos clientes nos amam

Okta
Nasdaq
Rakuten
Logitech
Western Union
Autodesk
Dropbox
Okta
Nasdaq
Rakuten
Logitech
Western Union
Autodesk
Dropbox

Zoom - Um lugar para conexões