Webhooks
Los webhooks son para la comunicación de servidor a servidor. Funcionan mediante un servidor que le dice a otro servidor que quiere que los datos se envíen a una determinada URL cuando sucede algo.
Este artículo habla sobre algunos usos de webhooks en servicios populares. Esta organización habla mucho sobre su uso en el contexto de las API RESTful.
Websockets
Los Websockets son (generalmente) para la comunicación entre el servidor y el navegador. El servidor aloja un servidor websocket y los clientes pueden abrir una conexión a ese servidor. Esto es popular ahora principalmente porque es más rápido y consume menos recursos que las formas antiguas de resolver el problema, como el sondeo largo / COMET .
Es posible conectar 2 servidores mediante websockets , pero normalmente no es para eso que se utilizan.
La confusión
Aunque uno de estos es (exclusivamente) servidor-servidor y el otro es (en su mayoría) navegador-servidor, estas tecnologías a menudo se discuten en los mismos lugares, casi como si estuvieran resolviendo los mismos problemas. Si miras la cadena lo suficientemente alto, ves que ambos resuelven el problema de la comunicación en "tiempo real", pero resuelven diferentes aspectos de este problema de formas muy diferentes .
Una situación en la que puede haber una comparación directa es si está creando una API que será consumida por un servidor de terceros. En esa situación, puede proporcionar una API webhook o una API websocket . Ambos permiten que el tercero obtenga actualizaciones rápidamente:
- Si elige webhooks, ese tercero aún tendrá que encontrar una manera de impulsar los cambios que les está informando en los navegadores de sus clientes.
- Si proporciona una API de websocket, el tercero puede simplemente configurar su sitio para que cada uno de sus usuarios se conecte directamente a su API de websocket y sus servidores tengan que hacer menos trabajo.