229 votes

Pourquoi utiliser AJAX alors que WebSockets est disponible ?

J'utilise les WebSockets depuis un certain temps maintenant, j'ai choisi de créer un outil de gestion de projet Agile pour mon projet de fin d'études à l'université en utilisant le serveur Node et les WebSockets. J'ai constaté que l'utilisation des WebSockets a permis d'augmenter de 624 % le nombre de demandes par seconde que mon application pouvait traiter.

Cependant, depuis le début du projet, j'ai lu des informations sur les failles de sécurité, et certains navigateurs ont choisi de désactiver les WebSockets par défaut

Cela m'amène à la question suivante :

Pourquoi utiliser AJAX alors que WebSockets semble faire un si bon travail en réduisant la latence et l'encombrement des ressources, y a-t-il quelque chose qu'AJAX fait mieux que WebSockets ?

2 votes

Voici une liste de moteurs qui supportent les sockets web. fr.wikipedia.org/wiki/

0 votes

0 votes

Il peut être intéressant de noter que vous avez besoin d'un autre port (différent) pour connecter des sockets web en plus d'un serveur web déjà en fonctionnement. En fonction de votre situation, cela peut ou non être un problème.

1voto

Err Hunter Points 309

Je ne pense pas que l'on puisse faire une comparaison claire entre Websockets et HTTP car ils ne sont pas rivaux et ne résolvent pas les mêmes problèmes.

Les websockets sont un excellent choix pour gérer le flux de données bidirectionnel à long terme en temps quasi réel, tandis que REST est idéal pour les communications occasionnelles. L'utilisation des websockets représente un investissement considérable, ce qui en fait une solution excessive pour les connexions occasionnelles.

Vous constaterez peut-être que les Websockets sont plus performants en cas de charge élevée, tandis que HTTP est légèrement plus rapide dans certains cas, car il peut utiliser la mise en cache. Comparer REST et Websockets revient à comparer des pommes et des oranges.

Nous devrions vérifier lequel fournit la meilleure solution pour notre application, lequel s'adapte le mieux à notre cas d'utilisation.

1 votes

La question portait sur AJAX en général, et non sur REST en particulier. Il est vrai qu'AJAX peut être utilisé pour REST, mais il est également utilisé pour le polling et le long-polling. Bien que je sois d'accord avec votre conclusion (comme vous pouvez le voir dans ma réponse), je pense que votre réponse pourrait refléter la distinction (notez que les Websockets peuvent également être utilisées pour REST, mais pas en utilisant les méthodes HTTP).

0 votes

@Myst je suis d'accord avec vous.

1voto

Mike De'Shazer Points 1

Un exemple des différences entre HTTP et Websockets sous la forme d'une librairie de taille client qui peut gérer les endpoints Websocket comme les API REST et les endpoints RESTful comme les Websockets sur le client. https://github.com/mikedeshazer/sockrest De même, pour ceux qui essaient de consommer une API websocket sur le client ou vice versa de la manière dont ils sont habitués. Le fichier libs/sockrest.js explique clairement les différences (ou plutôt est censé le faire).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X