Webhooks
Webhooks são para comunicação de servidor para servidor. Eles funcionam por um servidor informando a outro servidor que deseja que os dados sejam enviados a um determinado url quando algo acontecer.
Este artigo fala sobre alguns usos de webhooks em serviços populares. Esta organização fala muito sobre como usá-los no contexto de APIs RESTful.
Websockets
Websockets são (geralmente) para comunicação de servidor para navegador. O servidor hospeda um servidor websocket e os clientes podem abrir uma conexão com esse servidor. Isso é popular agora principalmente porque é mais rápido e consome menos recursos do que as formas mais antigas de resolver o problema, como long-polling / COMET .
É possível conectar 2 servidores usando websockets , mas normalmente não é para isso que eles são usados.
A confusão
Mesmo que um deles seja (exclusivamente) servidor-servidor e o outro (principalmente) navegador-servidor, essas tecnologias são frequentemente discutidas nos mesmos lugares, quase como se estivessem resolvendo os mesmos problemas. Se você olhar para o alto da cadeia, verá que ambos resolvem o problema da comunicação em "tempo real", mas resolvem diferentes aspectos desse problema de maneiras muito diferentes .
Uma situação em que pode haver uma comparação direta é se você estiver construindo uma API que será consumida por um servidor de terceiros. Nessa situação, você pode fornecer uma API webhook ou uma API websocket . Ambos permitem que o terceiro obtenha atualizações rapidamente:
- Se você escolher webhooks, esse terceiro ainda terá que descobrir uma maneira de enviar as alterações que você está relatando para os navegadores de seus clientes.
- Se você fornecer uma API de websocket, o terceiro pode simplesmente configurar seu site para que cada um de seus usuários se conecte diretamente à sua API de websocket, e seus servidores tenham menos trabalho.