2 votes

Utilisation de connexions websocket multiples

J'ai un site qui reçoit quelques milliers de visites chaque mois et qui est en croissance. Je suis en train d'ajouter de nouvelles fonctionnalités à mon site web qui sont interactives.

Je me pose maintenant la question : devrais-je utiliser une seule connexion websocket pour toutes les fonctions ou devrais-je créer une nouvelle connexion websocket pour chaque fonction interactive de mon application ?

Je réfléchis aux problèmes de performance. Créer un websocket signifie que je dois enregistrer la connexion sur le serveur. Mais avoir plusieurs connexions pour un utilisateur = la quantité de connexions que je dois enregistrer est beaucoup plus grande si je crée une nouvelle connexion pour chaque fonctionnalité.

Quelle est la bonne manière de gérer cela ?

2voto

IsraGab Points 1829

devrais-je utiliser une seule connexion websocket pour toutes les fonctions ou devrais-je créer une nouvelle connexion websocket pour chaque fonction interactive de mon application ?

Vous devriez avoir une seule connexion websocket, il n'y a aucune raison d'utiliser plusieurs websockets.

De par mon expérience personnelle:

La meilleure conception serait d'utiliser une API REST pour gérer les actions provenant du client et n'utiliser le websocket que pour les notifications. en utilisant le REST, il gérerait le parsing pour vous.

Quoi qu'il en soit, si vous voulez que toute votre application communique via le protocole websocket, vous pouvez envoyer quelque chose comme

msg = {
  "action": "voler",
   "data": "avion"
}

Ensuite, traitez-le côté serveur en utilisant une instruction switch :

switch(msg.action){
case 'voler': 
serverCommand.fly(msg.data);
break;
// autres instructions
}

Ou vous pouvez même le faire (pas de parsing nécessaire) :

serverCommand[msg.action](msg.data);

Ce que je veux dire, c'est que vous n'avez pas besoin d'ouvrir plusieurs websockets pour résoudre des problèmes de performances.

En ouvrant plusieurs websockets pour le même client, votre code sera difficilement maintenable et vous perdrez le principe DRY.

Jetez un œil à cette réponse, qui ne recommande pas d'ouvrir plusieurs sockets.

Et cette réponse qui énumère tous les cas où vous pourriez vouloir ouvrir plusieurs websockets pour le même client (faites attention, il dit que les cas d'utilisation sont non courants)

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