A través de he llegado a esta comparativa entre REST y WebSockets en cuanto a rendimiento que me ha recordado porque no todo debe resolverse con interfaces REST!!!

En el post primero definen las características de WebSockets:

· Bidireccional: tanto el cliente como el Servidor pueden iniciar las conexiones

· Full-duplex

· Conexión TCP única: con REST es necesaria una nueva conexión TCP por cada petición, mientras que en WebSockets el cliente y el servidor comunican sobre la misma petición

· Protocolo ligero: frente a una conexión HTTP en WebSockets una vez hecho el handshake los datos se minimizan

Teniendo en cuenta las diferencias entre ambas comunicaciones no resulta extraño que los WebSockets necesiten mucho menos tiempo para enviar el mismo número de mensajes:

Más interesante aún es que con REST el overhead crece cuando crece el número de mensajes ya que implica que muchas conexiones TCP deben crearse y finalizarse y que se envíen un gran número de cabeceras HTTP.

Una vez vista la diferencia de rendimiento el artículo incluye algunas consideraciones a tener en cuenta en el uso de WebSockets:

· WebSockets es un protocolo de más bajo nivel

· WebSockets es un protocolo con estado

· Con WebSockets se deben tener en cuenta los proxies, firewalls,…

· La seguridad no está definida en los WebSockets

Y una vez conocido esto, ¿se os ocurre algún escenario en el que usar WebSockets en lugar de REST? 🙂