web-dev-qa-db-fra.com

Pourquoi utiliser websocket et quel est l'avantage de l'utiliser?

J'ai essayé de lire certains articles, mais pas si clairement sur ce sujet.

Quelqu'un voudrait-il m'expliquer ci-dessous les points:

  • Pourquoi utiliser websocket sur http
  • qu'est-ce que la communication full duplex
  • qu'entendez-vous par interaction à faible latence

Toute forme d'aide est appréciée.

13
JR Sahoo.'JS'

Pourquoi utiliser websocket sur http?

Un webSocket est une connexion continue entre le client et le serveur. Cette connexion continue permet ce qui suit:

  1. Les données peuvent être envoyées du serveur au client à tout moment, sans même que le client ne le demande. Ceci est souvent appelé server-push et est très précieux pour les applications où le client doit savoir assez rapidement quand quelque chose se passe sur le serveur (comme un nouveau message de chat a été reçu ou un nouveau prix a été mis à jour). Un client ne peut pas être poussé des données sur http. Le client devrait régulièrement interroger en faisant une requête http toutes les quelques secondes afin d'obtenir de nouvelles données en temps opportun. L'interrogation client n'est pas efficace.

  2. Les données peuvent être envoyées de toute façon très efficacement. Parce que la connexion est déjà établie et qu'une trame de données webSocket est très efficacement organisée, on peut envoyer des données beaucoup plus efficacement que via une requête HTTP qui contient nécessairement des en-têtes, des cookies, etc ...

qu'est-ce que la communication full duplex?

Le duplex intégral signifie que les données peuvent être envoyées à tout moment sur la connexion à tout moment.

qu'entendez-vous par interaction à faible latence

Une faible latence signifie qu'il y a très peu de délai entre le moment où vous demandez quelque chose et le moment où vous obtenez une réponse. Comme cela s'applique aux webSockets, cela signifie simplement que les données peuvent être envoyées plus rapidement (en particulier sur les liaisons lentes) car la connexion a déjà été établie, donc aucun aller-retour supplémentaire n'est requis pour établir la connexion TCP TCP.

Pour une comparaison de ce qui est impliqué pour envoyer des données via une requête http vs une connexion webSocket déjà établie, voir les étapes répertoriées dans cette réponse: websocket vs rest API pour les données en temps réel?

Ces autres références peuvent également être utiles:

Server-Push chaque fois qu'une fonction est appelée: Ajax ou WebSockets

Notification push | websocket est-il obligatoire?

HTML5 WebSocket: un bond en avant dans l'évolutivité pour le Web

36
jfriend00